チューン旅行のTibcoのBWイベントの利点

REST APIを呼び出して、アプリケーションのイベントキュー、データベースクエリからの声明を開発し、このデータを更新し、負荷テスト時には、この単純なサービスは多くの問題があります。

いくつかの構成の問題イベントキューの消費者だけでなく、SQL文で問題。

 

1.複数のデータに同じパラメータ、更新ステートメントを渡しデッドロック

解決策:プライマリキーを使用して条件付き更新ステートメント

 

2.臨時サービスがタイムアウトがあるだろう、実際には、他の定期的なジョブがあり、サービスに影響を与え、時間がかかりすぎます

ソリューション:挿入されたデータをSQLの数を定義する別のジョブのタイミング

 

アプリケーションサーバは、CPUのデータの入ってくる部分を実行し、3。

解決策:モードがオートからキュークライアントになるだろうアクノリッジ、最大セッションのデフォルトは1

接続の最大数を定義しながら、JDBC

 

この後4.、設定されていない送信に一度のイベントに多くのデータベース接続要求ではなく、問題をもたらしている、それは一つだけ、遅い処理することができます

大きなに最大セッションデータの後に、キューレシーバが大きくなるが、唯一のキューComsumersにおけるデータ処理セッションが見られるものの

ソリューション:8にTIBCO EMS明示的なクライアント、そしてアプリケーションノードの流れを制限し、スレッド数の集合となり、クライアントのキューからの確認応答モード

この設定では、アプリケーションは同時に複数のデータを処理することができます

 

5.しかし、速度はアプリケーションノードのフローリミットを試した後、まだ満足のいくものではなく、スレッド数が16に設定されています

大量のデータを同時に投げたとき、5までキューMaxRedeliveryセットので、この時点では、このエラーメッセージがかご確認くださいいなかったので、キューが複数のメッセージの数倍でした

そして、さらに深刻なキューReceivermは劣らず、メッセージ内で、ありませんが、このプロセスはスレッドを生成し、まだサーバリソースを消費します

com.tibco.bw.palette.jms.runtime.fault.JMSEventContextFault:JMSメッセージを確認しようとしたときにエラーが発生しました

javax.jms.IllegalStateException:この消費者のためのメッセージを確認しよう(複数可)は無効

解決策:プロセスの消費者の、プラストライキャッチで

 

実際には6、本当のボトルネックは、クエリに表示されている、JDBCクエリがアプリのノードのアクティビティインスタンスの活動がONに設定され、クエリが実際に700〜1500ミリ秒を消費して見ることができます

このクエリは、クエリ文字列のGUIDフィールドに使用され、インデックスが作成されました

プログラムの存在BWクエリー結果のキャッシュ内の、Javaのグローバルインスタンスが動作する可能性方法を検討し始めたが、アクティブスペース、2.1バージョンはBW6を使用することはできません、これらは少し問題があります

私はSOAPUIでこのクエリを実行すると、我々は速度が1msで、BWとの速度は単純に行うには悪い日であることがわかりました

なぜBWでこのSQLはとても遅いのでしょうか?JDBCクエリモードは、事前の文で、SQL直接は速くなるはずですが、SQL直接はうまく機能しない、トラブルを変更します

だから、SQL SOAPUIが動作して置く見つけるためのSQLプロファイラツールで、数百ミリ秒は、元の文の文字列型はnvarchar型JDBCクエリを生成している必要が

この操作はしても、インデックスをヒットしなかったときにデータベースフィールドは、varchar型であります

対処方法:文の?(、VARCHAR(50)?)に変換するに変更、このようにして製造SQLがインデックスにヒットします

 

おすすめ

転載: www.cnblogs.com/sui84/p/12635651.html