Quantcast
Channel: ろっひー
Viewing all articles
Browse latest Browse all 77

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

$
0
0

会議中ただただ話を聞いているケースもあったりする。そして突然「じゃあ、君、発表しなさい」…なんて言われて、マイク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


設定ファイルをいじり、ApacheでKeepAliveを有効にしてみたりしたけど、特に動作は変わらない。

$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日に設定してみた。

結果は変わらない。結局Openmeetingsの動作の問題じゃないみたいだ。




やってみたこと その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の設定じゃなさそうだと思い始めた。




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


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


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

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


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


Viewing all articles
Browse latest Browse all 77

Trending Articles