Openmeetings タイムアウトしてしまう問題の解決

会議中ただただ話を聞いているケースもあったりする。そして突然「じゃあ、君、発表しなさい」…なんて言われて、マイクON操作したらいきなりログイン画面に戻る…。

いや、先方に失礼千万なログアウト…原因が見えない…何がどうなってんの?

色々試してみるしかない。



タイムアウト問題の解決

いろいろ試したけど、タイムアウトするのはブラウザ側?とさえ思えてしまう動作をしていた。

この仕掛けに関する登場人物は…

  • Openmeetings
  • Red5
  • Apache ← Proxyさせて443ポートでアクセスできるようにしている
  • Chrome/Edge等のブラウザ

WebSocketでセッションを張って、Openmeetings側からはPINGを飛ばしているようなログは見えている。

実際、何か操作を始めるまでは音声は通っている。だって、「君、発表しなさい」までは聞こえてるんだから。

となると、間にいるRed5かApacheが切断してるんじゃないのか…と。

で、よくよく確認してみると5080ポートでアクセスしているメンバーも突然の切断を体験してる…となると?Red5が切断していることになるな。

ということで、ここにタイムアウト設定を入れてみる。デフォルトは30分らしい、今まで勝手にログイン画面に戻る症状もだいたい30分ぐらいと思ってたから症状に合うような気がしてきた。

$red5/webapps/openmeetings/WEB-INF/web.xml
                </web-resource-collection>
                <auth-constraint/>
        </security-constraint>
        <!-- タイムアウト設定 ここから 480分=8時間-->
        <session-config>
                <session-timeout>
                        480
                </session-timeout>
        </session-config>
        <!-- タイムアウト設定 ここまで -->
</web-app>

 

赤文字部分を追加。

これで、Openmeetingsを再起動すれば設定が反映されるだろう。

 

これが決定版かな。

 

利用者各位の協力を得て動作確認…問題なし。

解決まで、長い道のりだったな~2週間以上悩みに悩んだけど、やっと落ち着いたよ~。

 

やってみたこと

その1

ApacheでKeepAlive on を書いてみたが、デフォルトがONなので効果なし。

その2

こんな設定が!?

$red5/webapps/openmeetings/WEB-INF/classes/applicationContext.xml
        <!--
                        5000            == 5 sec
                        300000          == 5 min
                        900000          == 15 min
                        1800000         == 30 min
                        3600000         == 1 hour
                        86400000        == 1 day
         -->
        <bean id="cleanupJob" class="org.apache.openmeetings.service.quartz.scheduler.CleanupJob"
                        p:sessionTimeout="86400000" p:testSetupTimeout="86400000" p:roomFilesTtl="86400000" p:resetHashTtl="86400000" />
        <!-- sessions clean-up -->

 

最初に見つけたときはこれかー!という感じ、全てのタイムアウト時間をまる1日に設定してみた。

結果は変わらない、これじゃない。

その3

ソースを見てみた…

openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/CleanupJob.java
public class CleanupJob extends AbstractJob {
private static Logger log = Red5LoggerFactory.getLogger(CleanupJob.class, getWebAppRootKey());
private long sessionTimeout = 18 * 60 * 60 * 1000L; // 30 min → 18 hour
private long testSetupTimeout = 18 * 60 * 60 * 1000L; // 1 hour → 18 hour
private long roomFilesTtl = 18 * 60 * 60 * 1000L; // 1 hour → 18 hour
private long resetHashTtl = 24 * 60 * 60 * 1000L; // 1 day

 

コンパイルしてできあがったモジュールはopenmeetings-service-4.0.1とopenmeetings-web-4.0.1なので置き換えてみた。

さらに、デバッグログを出してみた。

./openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java

にちょっと手を入れて…。

30分放置した後に何らかの操作をすると、セッションを閉じるイベントが飛んでくるところまではわかった。

これでOpenmeetingsの設定じゃなさそうだと思い始めた。

 

テストのたびに30分待たされるのがつらい…つらすぎる…

 

さいごに

Version 4.0.1 を使い始めたら、もう、元には戻りたくない。色々なものが使いやすくなっている。特に、画面共有はとても見やすくてホワイトボードを使った議論→議事録そのものの画面共有で議論…に移行している。また、音声のタイムラグも発生しにくくなっているように感じる。さらにボリュームの調整が各個人でできるようになったことも議論のしやすさに貢献。

これにより、ユーザーの皆さんの評判も今まで以上に良くなっている。

今のバージョンの問題は、画面共有をして議論している間に、新たに人が入ってきて画面共有を受けると、元々共有を受けていた人の画面が固まってしまうこと。

また、複数のホワイトボードを開いて、そのホワイトボードを複数人が同時に切り替えると時々パラパラ漫画のように画面が切り替わり続けるようになること。

これからのバージョンアップできっとこれらも改善されることだろう。期待して待っていよう。

お気軽にどうぞ ~ 投稿に関するご意見・感想・他

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です