2017-03-08 5 views
1

behaivor ClientConnectorは、私は2つのDBは、フォ​​ークを使用して選択/秒のワーカーでエラーに参加して、受信並列化するサービスのリソースを作成しました:workerdemodb2でバレリーナフォーク/ SQLに参加:

例外:バレリーナプログラムのエラーを:8

ハードコードされたjson変数を返すワーカーの代わりに、sql:ClientConnect.select ...すべてが正常に動作します。労働者の

例:異なる労働者とClientConnector:

  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; 

       } 
      } 

もう一つ... は、私はSQLを再利用することはできますか?私はグローバルなものを作成したので、変数が定義されていないというエラーが返されたので、各作業者ごとに新しい変数を作成する必要がありました。

たちはバレリーナの労働者の設計を改善しました

JP

+0

これは変です。作業者の中にあるコードを関数に置き、その関数を呼び出すと、関数が機能します。 JP –

答えて