質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
WebLogic Server

WebLogic Serverとは、Oracle社が開発したJ2EEを利用したWebアプリケーションサーバです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

Q&A

解決済

WEBLOGIC11gの画面JAVAアプリで起動したバッチJAVAプログラムが固まってしまう

teranaomasa
teranaomasa

総合スコア14

WebLogic Server

WebLogic Serverとは、Oracle社が開発したJ2EEを利用したWebアプリケーションサーバです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

1回答

0グッド

0クリップ

1760閲覧

投稿2019/09/14 03:02

編集2019/09/19 09:42

前提・実現したいこと

  お世話になっております。
現在WEBLOGICサーバーで動作するJAVAのアプリケーションから、バッチファイル(*.cmdファイル。そこにもJAVAのプログラムを
起動している)を起動するプログラムがあり、そこを改修しているのですが、いざテスト環境にて動かすと、処理が固まってしまう・・
という事象が発生して悩んでおります。
改修前は問題なく動作をしておりました。
※サービス起動アカウントの権限不足かと思ったのですが、そこはADMINISTRATORで問題なさそうです。

  もしご存知であれば、どのような調査方法があるかご教示いただく事は可能でしょうか?
不足している情報ございましたら、ご指摘をいただけると嬉しいです。

発生している問題・エラーメッセージ

 WEBLOGICサーバーにデプロイされた画面アプリから、同じサーバー上のフォルダに格納されている
バッチファイル(*.CMD)を起動し、起動はされるのですが、処理が固まってしまいます。

該当のソースコード

//画面アプリ
logger.debug("出荷指示連携処理 通常出荷 開始");
Runtime rt = Runtime.getRuntime();
Process process0 = rt.exec(new String[]{"cmd", "/c", "d:/IF/CMD/TEST1.CMD", StringUtil.nvl(bean.getCo_no()), "0"}); ←ここで起動
process0.waitFor();
int ret0 = process0.exitValue();
process0.destroy();
logger.debug("出荷指示連携処理 通常出荷 終了 結果[" + String.valueOf(ret0) + "]");

//バッチJAVAプログラム
// 1.5:ログイン通信を行う
WMSLoginRequest loginRequest = new WMSLoginRequest(wmsNinusiCd, wmsUserId, wmsPassword);
ObjectMapper objectMapper = new ObjectMapper();
String body = objectMapper.writeValueAsString(loginRequest);
String json = "{"body":" + body + "}";
logger.info(ctx, "ログイン通信API Request[{}]", json ); ←ここのろぐを吐いたところで固まる。。

PostMethod method = new PostMethod(wmsApiUrl + "Login.json");
method.setRequestHeader("Content-Type", "application/json; charset=UTF-8");
method.setRequestHeader("Referer", refererUrl);
method.setRequestEntity(new InputStreamRequestEntity(new ByteArrayInputStream(json.getBytes("UTF-8"))));
HttpClient client = new HttpClient();

試したこと

 サーバーで上記のTEST1.CMDにDOSプロンプトから直接起動をすると、処理は正常終了します。
プログラムでデバッグログの出力しましたが、やはり原因わからず。。 

あとJSTACKコマンドで固まった時のスタックトレースを出力しました。
自分が不勉強で申し訳ないのですが、何が悪いのか理解できないでいます。。

Deadlock Detection:

No deadlocks found.

Thread 6: (state = BLOCKED)

Thread 5: (state = BLOCKED)

Thread 4: (state = BLOCKED)

  • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
  • java.lang.ref.ReferenceQueue.remove(long) @bci=44, line=118 (Interpreted frame)
  • java.lang.ref.ReferenceQueue.remove() @bci=2, line=134 (Interpreted frame)
  • java.lang.ref.Finalizer$FinalizerThread.run() @bci=3, line=159 (Interpreted frame)

Thread 3: (state = BLOCKED)

  • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
  • java.lang.Object.wait() @bci=2, line=485 (Interpreted frame)
  • java.lang.ref.Reference$ReferenceHandler.run() @bci=46, line=116 (Interpreted frame)

Thread 1: (state = IN_NATIVE)

  • java.io.FileOutputStream.writeBytes(byte[], int, int) @bci=0 (Interpreted frame)
  • java.io.FileOutputStream.write(byte[], int, int) @bci=4, line=282 (Interpreted frame)
  • java.io.BufferedOutputStream.write(byte[], int, int) @bci=20, line=105 (Interpreted frame)
  • java.io.PrintStream.write(byte[], int, int) @bci=16, line=430 (Interpreted frame)
  • org.apache.logging.log4j.core.appender.ConsoleAppender$CloseShieldOutputStream.write(byte[], int, int) @bci=7, line=312 (Interpreted frame)
  • org.apache.logging.log4j.core.appender.OutputStreamManager.write(byte[], int, int) @bci=7, line=122 (Interpreted frame)
  • org.apache.logging.log4j.core.appender.OutputStreamManager.write(byte[]) @bci=5, line=135 (Interpreted frame)
  • org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(org.apache.logging.log4j.core.LogEvent) @bci=30, line=110 (Interpreted frame)
  • org.apache.logging.log4j.core.config.AppenderControl.callAppender(org.apache.logging.log4j.core.LogEvent) @bci=250, line=99 (Interpreted frame)
  • org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(org.apache.logging.log4j.core.LogEvent) @bci=36, line=430 (Interpreted frame)
  • org.apache.logging.log4j.core.config.LoggerConfig.log(org.apache.logging.log4j.core.LogEvent) @bci=91, line=409 (Interpreted frame)
  • org.apache.logging.log4j.core.config.LoggerConfig.log(org.apache.logging.log4j.core.LogEvent) @bci=113, line=412 (Interpreted frame)
  • org.apache.logging.log4j.core.config.LoggerConfig.log(java.lang.String, java.lang.String, org.apache.logging.log4j.Marker, org.apache.logging.log4j.Level, org.apache.logging.log4j.message.Message, java.lang.Throwable) @bci=167, line=367 (Interpreted frame)
  • org.apache.logging.log4j.core.Logger.logMessage(java.lang.String, org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, org.apache.logging.log4j.message.Message, java.lang.Throwable) @bci=56, line=112 (Interpreted frame)
  • org.apache.logging.log4j.spi.AbstractLogger.logMessage(java.lang.String, org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object[]) @bci=28, line=738 (Compiled frame)
  • org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(java.lang.String, org.apache.logging.log4j.Level, org.apache.logging.log4j.Marker, java.lang.String, java.lang.Object[]) @bci=21, line=708 (Compiled frame)
  • jp.co.tcc.ecs.LogifComm.common.logger.LogifLogger.info(java.util.Map, java.lang.String, java.lang.Object[]) @bci=15, line=4388 (Interpreted frame)
  • jp.co.tcc.ecs.LogifBatch.OD310ShipShijiLink.ShipShijiLink.run(java.lang.String[]) @bci=9244, line=1161 (Interpreted frame)
  • jp.co.tcc.ecs.LogifBatch.OD310ShipShijiLink.ShipShijiLink.main(java.lang.String[]) @bci=102, line=106 (Interpreted frame)

補足情報(FW/ツールのバージョンなど)

サーバー)
WINDOWS2008 R2

JAVAのバージョン)
1.6.0_39 

WEBLOGICのバージョン)
WEBLOGIC11G R1

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答1

0

ベストアンサー

状況からは外部コマンドの標準出力・エラー出力を適切に読み込んでいないためと思われます。
https://www.jpcert.or.jp/java-rules/fio07-j.html
こちらが詳しいかと。
http://www.ne.jp/asahi/hishidama/home/tech/java/process.html#Process_Stream

投稿2019/09/19 16:19

yamadamn

総合スコア29

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

teranaomasa

2019/09/20 02:16

お世話になっております。お忙しいところご回答ありがとうございます! 内容確認させていただき、処置を検討させていただき、別途結果の方を報告をさせていただきます。
teranaomasa

2019/09/22 05:41

お世話になっております。処置の方をいただく前に処理を流したら、何も直していないはずなのに、 自然解消をしてしまいました。  その前に処理を行うサーバーの再起動を行ってしまった事が原因かもしれません。  ただまた再発するかもしれませんので、当該処置は入れさせていただこうと考えております。  ご回答ありがとうございました!  ベストアンサーにさせていただきます!

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

WebLogic Server

WebLogic Serverとは、Oracle社が開発したJ2EEを利用したWebアプリケーションサーバです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。