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

RIA コンテキストに対する最後のリクエスト

コメント

15件のコメント

  • Tanda

    動作環境テーブルの「アプリケーションサーバ」タブにある、「コンテキスト非稼働タイムアウト」を使用されるといいと思いますよ。

    「コンテキスト非稼働タイムアウト」とは、各ユーザの最後のリクエストから何秒経過したかでセッションをタイムアウトさせる機能です。タイムアウトするとコンテキストが自動的に強制削除されます。

    デフォルトの値は今は24時間となっていますが、この機能がついた最初のころはタイムアウトが10分でした。たった10分ではトイレに行って戻ってくるだけでセッションが切れてしまうと、冗談で文句を言ったら24時間にあげてくれました(笑。

    さすがに24時間ではコンテキストが溜まりすぎてしまうと思いますので、2時間くらいでいいかなとも思います。

    もっと細かく制御したい場合は、メインプログラムにタイマーロジックを設定してタイムアウトを記述するといいですよ。ちょっと手間がかかりますが。。。

  • E_y

    ありがとうございます。

    「コンテキスト非稼働タイムアウト」を設定しているにもかかわらず

    コンテキストのゴミが残る事があります。原因はわかりません。

    そのために、定期的に手動でゴミコンテキストを削除したいと考えています。

     

  • Tanda

    コンテキスト非稼働タイムアウトが「0」になっていると、タイムアウトが無効になります。

    リクエスタが別のmagic.iniを見にいっているということはありませんか?

  • E_y

    ContextInactivityTimeout = 216000 

    6時間で設定しています。

    参照しているiniが間違っている事はありません。

     

    間違ってxpa4.xに投稿しましたが、

    実際に稼働している環境はxpa3.1の最終PTでした。

  • Tanda

    同じマシンに開発版もインストールされているということはありませんか?

     

  • E_y

    ありがとうございます。

    運用環境には開発版はインストールされていません。

     

  • Tanda

    それでは、別のバージョンのRIAサーバ、あるいはEnterpriseサーバがインストールされているということはありませんか?

    現在は、エイリアス名にバージョン番号が入るようになっていますが、以前はエイリアス名が同じとなっていた時期がありました。

     

  • E_y

    RIA Serverの1つのバージョンのみインストールされており

    他のMagicはインストールされていません。

     

  • Tanda

    コンテキストのゴミが残るというのは、何か原因があるのではないかと思うのですが、何なんでしょうね。ゴミがどういうタイミングのときに残るのかということは検証してみられましたか?

  • Tanda

    今、あらためて関数リストを見てみましたら、「CtxLstUse()」という関数が追加されていますね。これなんか使えそうですね。

  • Tanda

    失礼。追加というか、xpa 2.5から存在していますね。

    あと、私は以前、メインプログラムにグローバル変数のタイマーをセットして、各ユーザの最後のリクエストを追跡するプログラムを作ったことがあります。もう20年ちかく前のことなので、どのように作ったのかは思い出さなければなりませんが。。。

  • E_y

    ありがとうございます。

    回答が遅くなり申し訳ありません。

     

    基本的にはコンテキストのゴミが残る事はないのですね。

    ゴミが発生する理由は色々調査したのですが、わかっていません。

    プログラム側に何かを仕込むのは副作用の事を考えて避けたいところです。

    「CtxLstUse()」は使えそうですね。試して見たいと思います。

     

  • Tanda

    はい、昔と違って、今はこの関数を使えば簡単にできそうな気がします。あとで時間があるときに、私も試してみよう思います。

  • Tanda

    E_yさん、

    CtxLstUse()関数を試してみましたところ、思った通りの動きをしてくれました。

    この関数を用いて、すべてのコンテキストの非稼働時間を判定し、一定時間以上の非稼働が続いているコンテキストが見つかったら、CtxClose()関数でそのコンテキストを強制的に(かつ安全に)閉じるという処理です。

    使用したMagicのバージョンは、xpa 4.8.1 pt1です。

     

     

  • E_y

    こちらの方でも確認してみたいと思います。

    ありがとうございました。

     

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