2011-11-14 7 views
0

実際にデータベースを10秒間隔で読み取り、Webサービスに送信するデータベースリーダーチャネルがあります。 wsdlから有効な応答が得られます。マッパー変数のデータが失われる

ただし、データベースレコードを更新して、処理済としてフラグが立てられるようにする必要があります。この場合、フィールドを100から101に単純に変更しています。しかし、フィールドを更新しようとすると、またはマッパー変数に格納されたANYデータを含む電子メールを送信すると何も得られません。データベースは更新されません。電子メールはフィールドの空白を送信します。

処理されたメッセージのチャンネルメッセージに入ると、Raw MessageタブとEncoded Messageタブで良好なデータが表示されます。 [マッピング]タブに値はありません。

トラブルシューティングに関するご意見はありますか?

答えて

1

Run-on-Updateステートメントは、メッセージエンコーディングの後で実行される(そしてポストプロセッサであっても)チャネルマップにアクセスすることはできません。

これは、globalChannelMapとresponseMapにアクセスできます。あなたの新しいIDをglobalChannelMapに入れてください。あなたはうまくいくはずです。

メールを送信する場合は、「宛先1」で作成されたchannelMap変数にアクセスできるSMTP Writer宛先(SMTPライターなど)を追加することをおすすめします。 globalChannelMapなどがあります。

+0

globalChannelMapはグローバルなので注意してください。 2つのチャンネルがある場合、または1つのチャンネルが非同期で実行されている場合は、チャンネル外の値を上書きすることができます。 – Freiheit

+0

globalChannelMapのスコープは単一チャネルです。他のチャネルからのリスクはありません。つまり、生存期間は各デプロイメントからのものなので、各メッセージを処理する前に値をクリアまたはリセットするのが賢明です。 – dividius

+0

私の間違い。私はそれをglobalMapとして誤解しました。 @dividiusはボールの上にあります。 – Freiheit

関連する問題