3

インクリメントおよびデクリメントされる整数変数(同時リクエストを外部APIに制限するためのカウントセマフォ)を格納したいと思います。これは簡単ですが、並列SQLエージェントジョブで実行されるSSISパッケージからこの変数を読み書きする方法が必要です。現在、SQLエージェントジョブのインスタンスは0〜5個ある可能性があるため、SSISパッケージが同時に実行されます。

この変数を読み書きするための私のオプションは何ですか?この変数を使用するコードは、.NETでカスタムSSISタスクとして記述されています。

値が正確に正しいことは特に重要ではありませんが、一般的に近い限り、許容範囲内にあります。正確は素晴らしいですが、必須ではありません。

ファイルシステム、レジストリ、データベース、サーバー、およびSSISエージェント全体にアクセスできますが、この変数を15〜30スレッドで頻繁にチェックしたいので、これまでファイルシステム方式を使用すると問題が発生していました(私はおそらくそれを間違っています)、そしてデータベースに保存するにはIMOが多すぎます。私が間違っている場合は私を訂正してください。レジストリに保存すると、サーバーファーム全体で変数にアクセスできなくなります。

助けてくれる人がいたら、私は喜んであなたの年季奉公になります。

4

2 に答える 2

2

セマフォのカウントとして使用する場合は、実際にWindowsセマフォオブジェクトを使用してみませんか?System.Threading.Semaphoreはその.NETバージョンであり、コンストラクターでセマフォ名を指定すると、Win32オブジェクトはこの名前を使用するすべてのプロセス間で共有されます。

于 2011-03-13T08:00:34.083 に答える
0

質問を理解できません。データベース、ファイルシステム、レジストリなどにアクセスできることを示しました。これらのメソッドを使用したくない/使用できないと言っていますか?コンピュータが停止した場合に回復できるように、値を永続化することを検討していますか?

永続性が必要ない場合は、COMまたはWebサービスを含むRPCを介してメモリに永続化できます。解決策が何であれ、それはグローバルであり、実行中のすべてのインスタンスに表示される必要があるようです。

この可変メタデータは、プロセスを制御および調整するためのセマフォとして使用されますか、それともこの可変ドメインデータですか?

于 2011-03-03T18:46:10.090 に答える