「SE業務」カテゴリーアーカイブ

【WebSphere Application Server】ログを英語で出力する

WASで製品サポートに問い合わせをするとき、問い合わせ先は英語圏なので、ログは英語で出力されている方が、いろいろとスムーズです。エラーコードとかから分かるような気がしますが、なんとなくサポートの対応もよくなる気がして、いつも英語で送っています。

WASのログの言語は、起動ユーザの環境変数LANGで決まります。例えば、以下の環境変数であれば、日本語で出力されます。

WASは起動時に<WAS_PROFILE_ROOT>/profiles/<profile_name>/bin/ setupCmdLine.shというスクリプトを実行して、初期化処理を行っています。その中で、環境変数LANGが設定されてなければ、LANG=Cがexportされて、英語で出力されます。

でも、LANGを変更すると、他のものにも影響がでてしまうので、 setupCmdLine.sh の末尾に以下の一行を追加して、WASを再起動すれば、LANGを変更せずに、ログ出力を英語にできます。

なお、これはWindowsでは使えない方法なので、ご注意を 。
(ーoー)y~~~ 


【WebSphere Application Server】アプリケーションの起動が遅い場合の対処法

WebSphereにデプロイしたアプリケーションの起動が異常に遅い場合に有効な手段があったのでメモ。

WASではCDI( Contexts and Dependency Injection )がデフォルトで有効になっています。もし、デプロイしているアプリケーションでCDIを利用していない場合にはこの方法で起動速度がかなり早くなりました。私の場合、20分から2分くらいになりました。CDIの説明はこちら→ https://blogs.oracle.com/wlc/contexts-and-dependency-injectioncdi

WASでCDIが有効になっていると、アプリケーションの起動時にアサーションをスキャンするので、オーバヘッドが増加します。以下がCDIを無効化する手順です。

STEP① WAS管理コンソールにログイン

WASの管理コンソールにログインします。URLは「 https://hostname:port/ibm/console」です。

STEP② JVMカスタムプロパティの設定画面を開く

管理コンソールで以下の画面を開きます。
「サーバー」> 「サーバー・タイプ」>「WebSphere Application Server」>「server_name」>「サーバー・インフラストラクチャー」>「Java およびプロセス管理」 >「プロセス定義」>「Java 仮想マシン」>「カスタム・プロパティー」

STEP③ CDIを無効化するカスタムプロパティを追加する

以下のカスタムプロパティを追加します。設定したら、保存→再起動します。

NameValue
1 com.ibm.ws.cdi.enableImplicitBeanArchives false
2 com.ibm.ws.cdi.enableCDIfalse

あくまで、アプリケーションでCDIを使ってない場合です。上記のカスタムプロパティはデフォルトはtrueなので、CDIを使っている場合はこの方法は使えません。 (ーoー)y~~


【Windows】エクスプローラーを強制再起動する

Windows10を使っていると、エクスプローラーがフリーズして何もできなくなってしまうことがあります。私の場合、TeraTermのログイン画面で秘密鍵を選択するダイアログが開くとそのままフリーズしてしまうことがあります。

そんなとき、エクスプローラーを再起動したいのですが、普通特定のプロセスを再起動したいときは、タスクマネージャーから対象のプロセスを選択して強制停止します。

でも、それがエクスプローラーだと、タスクマネージャーもフリーズしてしまっています。そのため、コマンドでエクスプローラーを強制再起動する必要があります。

①コマンドプロンプトを起動する

Windowsボタン+Rで表示されるダイアログで「cmd」と入力してOKボタンを押します。

②エクスプローラーを再起動する

コマンドプロンプトで以下のコマンドを順番に実行します。

実行イメージ

ちなみにtaskkillコマンドのオプションですが、
「/IM explorer.exe」で終了するプロセスのイメージ名を指定しています。
「/F」は強制終了することを意味します。

これで再起動できます。
私は結構な頻度でこれを実施することがあったので、上記のコマンドをWindowsの付箋に貼ったりしてました。