#44 knowledge v1.11.0 へのアップデートができない[解決]

 [Public]
icon panda was written at Nov 7, 2017 8:12 PM ( icon panda was updated at Nov 9, 2017 3:14 PM <History> )
  Edit(Sign in)
  Stock
  Answer survey   Answer survey

  TOC

お世話になっております。

現在使用させていただいているのですが、knowledge v1.11.0へのデータベースアップデートができません。

具体的には、データベースアップデート画面のExecluteボタンを押下しても反応がありません。
catalina.out等のログを参照しましたが特段有用な情報がない状態です。

何か気をつけなければいけない事等を教えていただけないでしょうか?
v1.10.0 では何も問題なく使用できております。

tomcat

Server version: Apache Tomcat/8.0.47
Server built:   Oct 25 2017 18:26:56 UTC
Server number:  8.0.47.0
OS Name:        Linux
OS Version:     4.9.43-17.38.amzn1.x86_64
Architecture:   amd64
JVM Version:    1.8.0_151-b12
JVM Vendor:     Oracle Corporation

postgres

postgres (PostgreSQL) 9.6.5

 Attach Files     - [0]


 Comment
[Registration] Nov 9, 2017 7:57 AM [Koda]
icon

panda さん

原因ですが、以下の2つが原因かもしれません。

  1. WebSocketの通信ができない
  2. Tomcatから別プロセスのJavaプログラムをコールできない

以下に、各々について説明を書きます。

WebSocketの通信ができない

データのマイグレーション処理など時間のかかる処理は、WebSocketを使って実行中の処理の進み具合を把握できるようにしています。
ご利用のTomcat 8.0.47 はWebSocket通信を利用できたと思いますが、よくある環境の構成で、Tomcatの前にReverseProxyを置くことがあります。
このReverseProxyがWebSocketに対応していないと、マイグレーション処理を実行できません。
私はReverseProxyにNginxを利用しているので問題無いのですが、ApacheなどだとバージョンによってWebSocketが使えないようです。

○ ブラウザ(利用者) -------- Tomcat
○ ブラウザ(利用者) -------- Nginx(ReverseProxy@WebSocketが利用可能) ---------- Tomcat
☓ ブラウザ(利用者) -------- ReverseProxy@WebSocketが利用できない ---------- Tomcat

Tomcatから別プロセスのJavaプログラムをコールできない

Knowledgeでは、時間のかかる処理や、定期的な処理(Cronで実施するようなもの)は、TomcatのJavaプロセスでは無く、
そこから別のJavaプログラム実行のプロセスをコールして実施しています。

Tomcatから java -cp {classpath} {実行するjava class} {引数} を呼び出しているイメージです

環境によっては、このJavaのプログラムのコールに失敗することがあるようです。
前に聞いた話では、「java」のコマンドにパスが通っておらず、コマンドが失敗したということがありました。


憶測で2つの原因を書きましたが、ログを見ないと詳細はわかりません。
Knowledgeのデータ格納ディレクトリの中に、 logs/app.log が格納されていると思いますが、そのログを送って貰えれば
原因がわかるかもしれません。
上記の2つの観点でご確認いただき、解決しないようでしたら、ログの送付もご検討ください。


 Like! × 0  
Collapsed
[Registration] Nov 9, 2017 2:57 PM [panda]
icon

解決しました。
nginxの設定にWebsoketの設定を入れていないことが原因でした。
ありがとうございました。

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;

 Like! × 0  
Collapsed
[Registration] Nov 9, 2017 11:36 PM [Koda]
icon

無事に解決したようで安心しました :smile:


 Like! × 0  
Collapsed



 Add Comment