2017-03-08 2 views
1

habe ich eine Ressource auf einem Dienst zwei parallelisieren DB wählt unter Verwendung Fork/Join und den Fehler an der zweiten Arbeitskraft erhalten:Ballerina Fork/Join mit sql: ClientConnector behaivor

Ausnahme in workerdemodb2: Fehler in ballerina Programm :

Wenn ich einen der Arbeiter ersetzen, die eine fest codierte json-Variable anstelle der sql: ClientConnect.select zurückgibt ... alles funktioniert gut.

Beispiel des Arbeiters:

  worker emp (message m) { 
       string dbURL = "jdbc:oracle:thin:@localhost:49161/XE"; 
       string username = "vatrox"; 
       string password = "vatrox"; 
       map propertiesMap = {"jdbcUrl":dbURL, "username":username, "password":password}; 
       sql:ClientConnector empDBConnector = create sql:ClientConnector(propertiesMap); 
       sql:Parameter[] params = []; 

       try { 
        datatable dt = sql:ClientConnector.select(empDBConnector, "select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp", params); 
        json payload = datatables:toJson(dt); 
        message response = {}; 
        messages:setJsonPayload(response, payload); 
        reply response; 

       } 
       catch (exception e) { 
        message response = {}; 
        messages:setJsonPayload(response, responseException("select emp",e)); 
        reply response; 

       } 
      } 

Eine andere Sache ... Kann ich wieder verwenden eine SQL: ClientConnector mit verschiedenen Arbeitskräften? Da ich eine globale Variable erstellt habe, aber eine nicht definierte Variable erhalten habe, musste ich eine neue Variable für jeden Arbeiter erstellen.

Danke,

JP

+0

Es ist seltsam. Wenn ich den Code innerhalb des Worker auf eine Funktion setze und die Funktion aufruft, funktioniert es. JP –

Antwort

Verwandte Themen