メインコンテンツへスキップ

コマンドラインリクエスタ 同じアプリケーション名のスレッドが複数起動されている時

コメント

12件のコメント

  • Tanda

    発想はちょっと違うのですが、メインプログラムのタスク前処理で、管理者だけが起動できる無限ループのバッチを起動しておいて、そこでタイマーイベントで定期的に削除するという方法はダメでしょうか?メインプログラムからであれば、すべてのコンテキストが対象になると思います。試したわけではないので、うまくいくかどうか分かりませんが。

  • E_y

    丹田さんいつもありがとうございます。

    既に沢山のユーザが使用している基本的に止められない環境に仕込事になります。

    現在問題なく稼働でいている環境に出来る限り影響のない形で仕込む事を考えた結果、

    コマンドラインリクエスタの選択を考えました。

     

    スレッドを指定してコール出来る方法がないものでしょうか。

    宜しくお願い致します。

  • Tanda

    ヘルプを見ますと、実行パラメータに [-HOST, -PORT] というのがありますが、これではダメでしたか?

  • E_y

    既に [-HOST, -PORT] を試していました。

    ヘルプに
    「MRBのアドレス(ホスト名、ポート番号)を指定します。」
    と有るようにMRBの値を指定した場合は接続できますが、
    各スレッドのホスト、ポートを指定しても
    無反応になります。

  • Tanda

    「スレッドが複数」と書いておられますが、RIAサーバのどういう形態のライセンスを利用されているのでしょうか?

    ファイアウォールの設定かなにかで、そのホストにリクエストが到達していないということはありませんか?

     

  • Tanda

    「コンテキスト非稼働タイムアウト」が効かないということ自体が、どこかに原因があるように思われてなりませんが。。。

    ちなみに、xpa 4.8.1のヘルプを見ますと、4.8.1から「クライアントコンテキスト非稼働タイムアウト」というオプションが追加されていますね。ヘルプにはWebClientの記述しかなされていませんが、RIAにも効きそうですね。

     

  • Tanda

    > 各スレッドのホスト、ポートを指定しても
    > 無反応になります。

    推測ですが、これの原因を究明すれば「コンテキスト非稼働タイムアウト」が効かない理由も判明するかもしれませんね。

     

  • E_y

    ありがとうございます。

    >「スレッドが複数」と書いておられますが、RIAサーバのどういう形態のライセンスを利用されているのでしょうか?

    多くの利用者がいますので
    1つのスレッド(この呼び方が正しいかはわかりませんが)に固定のライセンス数(MaxConcurrentRequests)を割り振って同じアプリケーションを複数起動して運用しています。
    例え1スレッドが何かの問題で落ちても他のスレッドが生きていれば運用は可能である事等からこの方式を採用しています。


    > ファイアウォールの設定かなにかで、そのホストにリクエストが到達していないということはありませんか?

    スレッドを指定できないだけで、
    実行し結果が出ていますのでファイアウォールの設定では無いと思われます。(まだテスト環境ですが)


    >「コンテキスト非稼働タイムアウト」が効かないということ自体が、どこかに原因があるように思われてなりませんが。。。

    全く有効でないわけではなく、原因は不明ですがコンテキストが残り続ける事があるのです。
    元々はこの原因を追求するため、ゴミと思われるコンテキストの最後のリクエスト(何をしたのか)を
    知る方法はないかと調査していました。

    それとは別に自動でゴミと思われるコンテキストを定期的に監視し削除する方法を模索しています。

  • Tanda

    ありがとうございます。環境を理解しました。Magic Enterpriseサーバのスレッドライセンスのようなものかと思っていました。

    複数のRIAサーバが複数のマシンで稼働しているということなのですが、MRBは1台で一元管理されていますか、それともRIAサーバごとにMRBを立ち上げていますか?

     

  • E_y

    MRBは一元管理されています。

  • Tanda

    ちょっと古い記憶なんですが、1台のMRBが複数のアプリケーションを一元管理していて、アプリケーション名が同じで、なおかつリクエスタ(MGrqispi.dll)の場所も同じであった場合、MRBがどちらのアプリケーションサーバに個々のリクエストを流すかという振り分けが微妙だったような記憶があります。

    各アプリケーションサーバへのリクエストの振り分けは、何かされておられますか?

  • E_y

    実運用の中では振り分けは正常に行われています。

サインインしてコメントを残してください。