Mathematica 9 is now available
7.2 個々の問題

ドキュメント7. トラブルシューティング

 

7.2 個々の問題

このセクションではwebMathematica をインストールしたり起動したりするときに起るいくつかの問題について説明ます.「ログ」と「カーネルモニタ」のセクションも同時にご覧ください.また,「webMathematica のデバッグ」のセクションも役に立つ可能性があります.

7.2.1 フロントエンドを起動する際の問題

タイプセット画像やグラフィックスの描画,Notebook API関数の使用等の操作にはMathematica のフロントエンドが必要です.UnixのマシンでX Window Systemをお使いの場合はインストールセクションの「X Window Systemの設定」の指示に従っていることをご確認ください.

7.2.2 Xvncのテストの問題(Unixのみ) (Unix only)

これはX Window SystemでwebMathematica を起動する際にのみ問題となる事柄です.

インストール関連のセクションで説明したように,Mathematica のフロントエンドを起動するためには仮想フレームバッファXサーバのXvncを起動するのが一般的です.もしもこれが適切に起動していないようなら(例えばタイプセット画像がちゃんと描画されないようなら),vncviewerユーティリティを使ってフレームバッファの動作を検証してみるとよいでしょう.

[server1]$ vncviewer :1

Xvncサーバ用のパスワードを入力するとサーバが提供するスクリーンが表示されます.ここでMathematica のフロントエンドが実行されているのを見ることができます.問題があると,それを告げるダイアログボックスが現れます.

7.2.3 Xvfbのテストの問題(Unixのみ)

次はX Window SystemでwebMathematica を起動する際にのみ問題となる事柄です.

XvfbはMathematica のフロントエンドが実行できる仮想フレームバッファXサーバです.もしもこれが適切に起動していないようなら(例えばタイプセット画像がちゃんと描画されないようなら),xwdユーティリティを使ってフレームバッファの動作を検証してみるとよいでしょう.

xwd -display :1 -root | xwud

設定によっては大変時間がかかることがあります.例えば仮想サーバのビット深度を24から16に変更してパフォーマンスを向上させることができます.次ではサーバをビット深度24で実行しています.

su tomcat -c "/usr/X11R6/bin/Xvfb :1 -screen 0 800x600x24 "&

次はビット深度16でサーバを実行するコマンドです.

su tomcat -c "/usr/X11R6/bin/Xvfb :1 -screen 0 800x600x16 "&

7.2.4 画像の問題

プロット例題のように画像が入るはずのページで画像が見えない場合は,問題が記録されるログファイルをチェックしてください.VerboseLogstrueに設定すると最大量の情報が得られます.画像キャッシュディレクトリをチェックするのもよい考えです.このディレクトリの名前はサーバが起動されるときのログファイルに記されています. 画像ファイルはこのディレクトリに書き込まれているのに返されたURLがこの場所を参照していない場合は ,後ろのセクションにあるようにWebアプリケーションの名前を設定してみるとよいかもしれません.

タイプセットしてある画像が描画されない場合は,フロントエンドが適切に設定されているかどうか確認してください.

7.2.5 Mathematica のパッケージとアプリケーション

Mathematica のパッケージやアプリケーションの関数の使用に問題がある場合は,「Mathematica パッケージとアプリケーション」のセクションをご覧ください.例えばMathematica のパッケージ形式ではないコードを使おうとすると,各リクエストに対する後処理のコードがデフォルトコンテキストのシンボルをすべて除去してしまうため,問題が生じる可能性があります.

7.2.6 Kernelの初期化

KernelInitializationでデフォルトコンテキストにある記号の定義を設定すると,この定義は各リクエストの後処理のコードでクリアされ,記号は除去されてしまいます.これはコンテキストを適切に使うためにMathematica のパッケージ形式で書かれていないKernelInitializationからロードされるパッケージにも該当します.どんな定義も名前を保存するためにそれ自身のコンテキストを使っていなければなりません.このためには例えばTestNameSpace`Computeのように名前の前にコンテキストをつけるか,あるいはBeginPackage[]EndPackage[]を適切に使う必要があります.

KernelInitializationパラメータを使う際の別のポイントに,パッケージによっては正しく初期化するためにフロントエンドを必要とするものもあることも挙げておきましょう.このようなパッケージはUseFrontEndを使ってwebMathematica にロードできます.次の例をご覧ください.

KernelInitialization=UseFrontEnd[Needs[ "MyApplication`"]]

7.2.7 フォーマットの際の縦方向の整列

上付き文字,下付き文字,分数等のフォーマットされた出力が縦方向に揃っていない場合,フォーマットしたものをテキストベースで出力していて,等幅フォントを使っていない可能性があります.テキストベースのフォーマットには縦方向の整列のために等幅フォントが必要です.

7.2.8 時間切れの問題

時間切れのために計算が終了しないと思ったら,ログシステムで確認することができます.この場合,まず実行中の計算をチェックしてください.実行されているコードに問題があって予定よりも時間がかかっている可能性があります.入力を普通のMathematica セッションで試してみることもできます.コードが正しく実行されているようであれば,KernelTimeLimit設定パラメータを増やすこともできます.

7.2.9 UnsatisfiedLinkError

webMathematica がうまく動かないとき,サーブレットログにUnsatisfiedLinkエラーがレポートされていることがあります.

Exception in thread "main" java.lang.UnsatisfiedLinkError:MLOpen
at com.wolfram.jlink.NativeLink.MLOpen(Native Method)
at com.wolfram.jlink.NativeLink.<<init>(Unknown Source)
at com.wolfram.jlink.MathLinkFactory.createMathLinkGuts(Unknown=Source)
at com.wolfram.jlink.MathLinkFactory.createMathLink(Unknown=Source)
at com.wolfram.jlink.MathLinkFactory.createKernelLinkGuts(Unknown Source)
at com.wolfram.jlink.MathLinkFactory.createKernelLink(Unknown=Source)

これは,J/Link が正しくインストールされていない,特にJavaシステムが動的ライブラリを見付けられないことを意味しています.このライブラリはUnixではlibJLinkNativeLibrary.soと呼ばれ,WindowsではlibJLinkNativeLibrary.dllと呼ばれ,Mac OS XではlibJLinkNativeLibrary.jnilibと呼ばれます. サーブレットコンテナによってはWebアプリケーションの内側からはネイティブライブラリをロードしないものもあります.この場合はWEB-INF/libから一般的なディレクトリにSystemFilesをコピーし,で指摘するようにJLinkNativeLibraryDirectory設定パラメータに変更を加えてください. Tomcatのようにサーブレットコンテナの多くはWebアプリケーションの内側からはネイティブライブラリをロードすることができます.その場合はwebMathematica 内部のJ/Link のバージョンが動きますので,上述の問題が起こった場合はサポートまでご連絡ください.

7.2.10 JLink`がロードできない

webMathematica がうまく動かないときに,JLink`がロードされていないというサーブレットログを目にすることがあるでしょう.

Error:: Mathematica cannot load JLink`.
Check that the JLink Mathematica application has been
installed as described in the JLink documentation.

これはJ/Link が正しくインストールされていない,特にMathematica Mathematica アプリケーションのJ/Link を見付けられないことを意味しています.webMathematica には独自バージョンのJ/Link が含まれているのでこの問題は起りません.何か問題が起った場合は代理店にご連絡ください.

7.2.11 NoClassDefFoundError: TryCatchFinally

webMathematica がうまく動かないときに,サーブレットのログにTryCatchFinallyに関するNoClassDefFoundエラーのが報告されることがあります.

500 Internal Server Error
/webMathematica/Examples/Hello.jsp:

javax/servlet/jsp/tagext/TryCatchFinally
java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TryCatchFinally
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
at java.lang.ClassLoader.defineClass(ClassLoader.java:438)

このエラーはJSP 1.2 APIをサポートしていない旧式のサーブレットコンテナでwebMathematica のカスタムJSPタグを使うと起ります.サーブレットエンジンをアップデートしなくても「以前のwebMathematica技術」の説明に従ってwebMathematica を使うことができます.

7.2.12 NoClassDefFoundError: JLink Classes

webMathematica がうまく動かないときに,Webの最初のページあるいはサーブレットログにNoClassDefFoundエラーが報告されることがあります.下の例をご覧ください.

java.lang.NoClassDefFoundError: com/wolfram/jlink/MathLinkException
at java.lang.Class.newInstance0(Native Method)
at java.lang.Class.newInstance(Class.java:237)

これでJ/Link が正しくインストールされていないこと,より具体的にはJavaシステムがJ/Link Javaアーカイブを見付けられていないことが分かります.このアーカイブはJLink.jarと呼ばれるものです.webMathematica にはJ/Link の独自のバージョンが入っているので,この問題は起るはずがありませんが,不具合があった場合はサポートまでご連絡ください.

7.2.13 NoSuchMethodError: KernelData

webMathematica がうまく動作しない場合,最初のページかサーバのログにKernelDataクラスのstartInitメソッドの内部で生成されるのNoSuchMethodError例外がレポートされることがあります.以下はその例です.

java.lang.NoSuchMethodError at com.wolfram.kerneltools.KernelData.startInit(Unknown Source) at com.wolfram.kerneltools.KernelPool.initKernels(Unknown Source) at com.wolfram.kerneltools.KernelPoolManager.acquireKernelPool(Unknown Source)

これはJ/Link の古いバージョンでwebMathematica を実行しようとすると起ります.JavaランタイムにJLink.jarを直接インストールしたことがあった場合にありがちです.一般に,Javaランタイムにクラスをインストールすることはお勧めできません.このエラーのように,新しいバージョンが入手可能になってもそのクラスが常にロードされるからです.ご自分のJLink.jar用のJavaのコピーを探してこれを削除してください.ネイティブライブラリのJLinkNativeLibraryも削除した方がいいでしょう.これはよくSystemFilesディレクトリにあります.webMathematica には専用のJ/Link のコピーが入っているので,JavaランタイムにJ/Link をインストールする必要はありません.



Any questions about topics on this page? Click here to get an individual response.Buy NowMore Information