OracleをバックエンドとしてOracleに接続するASP.NETを使用するWebアプリケーションがあります。 ASP.Netは、いくつかのビジネスオブジェクトを使用してOracle CRM Webサービスを呼び出しますが、これは正常に動作します。ASP.NETのwebservice呼び出しをロックして、Webサービス呼び出しの制限ごとにOracle CRM時間を回避する
ただし、Oracle CRMには、1秒間に20回のWebサービス・コール(または50mS当たり1回のコール)しかできないという制限があります。このレートを超えると、SOAPExceptionが返されます。 "
このサイトへのトラフィックは最近増加しています。そのため、これらのSOAPExceptionをたくさん取得していますが、Webサービスを呼び出すコードが次のようにラップされています。 50msの制限が破られることがないように、私はそれを変更すると思っていました。
私はしかし、私はまだいくつかのSOAP例外を取得しています次のコード
private static object lock_obj = new object();
lock (lock_obj)
{
call webservice;
System.Threading.Thread.Sleep(50);
}
を使用しています。 lock()の代わりにmutexを使ってコードを書こうとしましたが、パフォーマンスの影響が問題であることが判明しました。
誰も私の解決策がworkinfではない理由を説明することができますし、代替案を提案することができますか?
おそらく、あなたは間違った問題を解決しています。最初にこの問題を引き起こしているOracle CRMの代替案を見つけられないのはなぜですか?あなたの解決策が何であれ、追加のトラフィックはシステムを停止させることになります。 –
Brillian ideatと正確に何が行われる必要がありますが、残念ながら私のコントロール下にありません – jazza1000