2016-07-14 11 views
0

私たちは.netアプリケーションでWSO2 ESBを使用しています。 SQL Server 2014データベースに正常に接続しましたが、レコードを取得したり、操作を実行することができません。どんなアイデアも高く評価されます。WSO2 ESB、SQL Serverデータベースでレコードを取得または処理できない

+0

を送信しますか? dbルックアップメディエーターを使用しましたか?あなたが作成したシーケンスを投稿すれば? – lakshman

+0

こんにちは、 '/repositiry/logs'ディレクトリ内の' wso2carbon.log'でエラーをチェックしてください。エラーがあればお知らせください。また、実行したESBのバージョンと操作をお知らせください。 – Charitha

+0

私の解決策:1. WSO2 DSSの機能をWSO2 ESBに組み込みます。2.必要に応じてローカルトランスポートプロトコルを使用してDSを作成します。3.これらのDSをプロキシサービスとして公開します。 –

答えて

1

ESBはデータベースからレコードをフェッチするように設計されていません。

DBLookupメディエータを使用している場合。 ドキュメントごと:DBLookupメディエータは、結果セット内の1つの行からプロパティを設定できます。複数の行を返すことはできません

DBLookupは受け取ったデータをプロパティに注入し、soapドキュメントには表示されません。これらは単に軸エンジンにプロパティ要素として存在します。

Uは、これらのプロパティをログに記録することができます

:いくつかの行を取得するために

<log> 
    <property name="ID" expression="get-property('id')" /> 
    <property name="NAME" expression="get-property('name')" /> 
    <property name="AGE" expression="get-property('age')" /> 
</log> 

考えられる解決策: その後、uは値をログに記録することができ、のがDBLookupが結果要素のID、名前、年齢を定義してみましょうが、データベースから受け取りました

ESBに役立つパターンがあります。 YはDBLookupを管理して、すべての主キーがカンマで区切られた文字列としてデータを戻すことができます。これらのキーは行の参照元であり、DBから取得する必要があります。次にをそれぞれメディエーターとxslt関数分割で使用し、別のキーに繰り返し実行してDBLookup呼び出しを呼び出すと、実際のデータがそのキーに対応します。その後も、それらのデータをプロパティ内にメッセージそのものに注入する必要があります。

これは本当に難しい作業ですが、デバッグは難しいです。

data_serviceを作成し、uは仲介者コールのいずれかを使用してデータを必要とするとき、それに要求を行うDSS機能をインストールする方がはるかに簡単、あなたがESBを使用してレコードを取得するにはどうすればよい

+0

ありがとう!私たちはDSSをダウンロードしています。これは私たちが逃した解決策だと思います:)皆の感謝を感謝します。 –

関連する問題