エンタープライズ管理 > Windchill ESI > SAP 環境での Windchill ESI の管理 > 問題の監視、診断、および解決に関するガイドライン > 問題の解決 > 具体的な問題の解決 > トランザクションが保留状態のままになります。
  
トランザクションが保留状態のままになります。
これは、EMS サーバーキューが、JMS キューの設定と管理で説明されているとおりに購読されていない場合に発生する可能性があります。
一般的な根本原因としては、Windchill メソッドサーバーの起動時に JMS サーバーが実行されていないこと、Windchill アダプタの JMS プロパティの設定が間違っていること、または JMS サーバーの設定が間違っていることが考えられます。
Windchill ESI サービスが、結果メッセージ受け取りのための JMS キューの購読に成功すると、以下の情報が Windchill PDMLink メソッドサーバーのログに記録されます。
Thread-10: subscription to queue "com.ptc.windchill.esi.Result" successful
この情報がログにない場合は、Windchill がこのキューの購読に成功しなかったことを意味します。この場合は、すべての Windchill ESI トランザクションが保留状態のままになります。Windchill がキューの購読に成功すれば、トランザクションは処理されます。
通常、JMS サーバーが利用できないという理由で Windchill ESI によるキューの購読ができない場合は、Info*Engine は例外を受け取ります。Windchill ESI サービスは、この例外を Windchill アダプタトランザクションログに記録します。TIBCO EMS が JMS プロバイダである場合は、メッセージに以下のテキストが含まれます。
javax.ems.JMSException:Failed to connect to the server at tcp
検出の手段として、このテキストまたは類似のテキストを探すように監視ソフトウェアを設定できます。問題を解決するには、メソッドサーバーの前に EMS サーバーが起動していることを確認し、Windchill アダプタの JMS 設定と JMS サーバー設定に関する問題をすべて解決してください。
この問題を回避するには、以下の点を確認してください。
EMS サーバーに接続しているユーザーが 1 人のみであること (TIBCO EMS 管理ツールの「Show connections」で確認できます)。
ClientID (BW-ESIMaster_JMSConnection-queue-<アプリケーション名>-Process_Archive) を持つ ESISYS の接続数が、設定済みの ERP インスタンスと同数であること (TIBCO EMS 管理ツールの「Show connections」で確認できます)。
すべての接続が、現在テスト中の製品群内の TIBCO または Windchill サーバーからのものであること。以前の製品群または無関係のマシンからの接続がないことを確認します (TIBCO EMS 管理ツールの「Show connections」で確認できます)。
Windchill とプロセスアーカイブが同じ JMS キューに接続すること (TIBCO EMS 管理ツールの「Show queues」で確認できます)。
com.ptc.windchill.esi.Result キューは、ただ 1 つの受信者を持つこと (TIBCO EMS 管理ツールの「Show queues」で確認できます)。
どのキューの中にもメッセージがないこと (TIBCO EMS 管理ツールの「Show queues」で確認できます)。
Windchill が DataResponse キューの購読に成功していること。JMS サーバーに接続して、DataResponse キューが作成されていることと、WCESI ユーザーが DataResponse キューの送信権限を付与したことを確認します。'show queues' を実行したときに、DataResponse キュー名の前に * が表示されている場合は、キューが一時的なものであり、作成する必要があることを示しています。EAR が手動で展開された場合にこの問題が起きています。この問題を解決するには、JMS 管理ウィンドウで次のコマンドを実行します。
create queue <DataResponse>
setprop queue <DataResponse> secure
grant queue <DataResponse> <EAI ユーザー> receive
grant queue <DataResponse> <WC ESI ユーザー> send
setprop factory QueueConnectionFactory url=tcp://<JMSServer>:7222
commit
プロセスアーカイブが、Windchill が購読しているのと同じ DataResponse キューに接続していること。JMS 管理ウィンドウで、DataResponse キューがプロセスアーカイブによって購読されていることを確認します。手動で展開された場合は、このステップが見落とされていることがときどきあります。DataResponse キューが購読されているかどうかは、TIBCO Administrator--> Application Management --> アプリケーション名 --> Configuration-->展開名--> Advanced -->ESIJMS/DataResponseQueue の順に選択して確認します。