ES/1 Shelty Tips

#24 intra_mart スクリプト開発モデルへの対応

作成者: IIM 遠藤 (ES/1 Shelty担当)|May 7, 2024 6:46:20 AM

 

 

こんにちは。ES/1 Shelty担当の遠藤です。最近、花粉症になったかもしれません。

 

さて、今回はintra-martを利用されるお客様に対する機能強化をご紹介します。

 

スクリプト開発モデル

intra-martは日本国内に多くの利用実績を持つ、独自のシステム開発フレームワークです。
利用者はintra-martが用意しているモジュールやフレームワークを活用することにより、効率的な開発を進めることができます。

intra-martの開発モデルは、スクリプト開発モデル、JavaEE開発モデルの2つに大別され、以下のような特徴があります。

 

  • スクリプト開発モデル
    プレゼンテーション・ページ(HTMLファイル)とファンクションコンテナ(サーバーサイドJavaScriptファイル)を作成します。フレームワークで用意されているモジュール群(im-BizAPI)を利用できます。DBを参照するなどの比較的小さな処理を作成する際に利用されます。

  • JavaEE開発モデル
    JSPファイルとServletなどのJavaコンポーネントを作成します。im-BizAPIとともに、JavaEEフレームワーク(TERASOLUNA Server Framework for Java (5.x))を利用します。バッチ処理を含めたアプリの機能を作成する際に利用されます。

 

特に、スクリプト開発モデルはHTMLとJavaScriptのみでWebアプリケーションが作れることから、多くのお客様に利用されています。

 

Sheltyリリース2.6.0では、このスクリプト開発モデルにおけるカスタムロジックの計測に対応しています。

 

intra-martのWebアプリケーション分析

intra-martのWebアプリケーションの処理は、大別して以下の2つから成ります。

 

  • intra-martから呼び出される自社のカスタムロジック
  • intra-mart本体


どちらに遅延が発生しているかを素早く判断することは、問題の対処において重要です。

 

社内で開発されたJavaScriptのロジック部分で遅延が起きていれば、すぐにロジック改善に取り組むことができます。

反対に、intra-martの処理部分で遅延が発生しているならばメーカーへの問い合わせを行うという次の行動に移りやすくなります。

 

しかし、原因がどちらにあるかはっきりしない場合、責任範囲が不明確となり、問題解決に時間がかかりやすくなります。

 

機能強化内容

Java Agentは、イントラマートの内部処理を含む処理時間を報告します。

 

今回の機能強化により、intra-mart内の処理の内訳としてスクリプト開発された部分の内訳を報告するようになりました。

そこで、以下の対応を追加しました。

①業務ロジックのスクリプト開発モデル部分を自動検出

②Scriptクラスのexecメソッドをフックポイントに追加

 

結果として下図のように、スクリプトから起動された処理の実行時間が記録されるようになりました。

 

 

 

 

 

 

 

計測されるintra-martの処理時間は以下の通りです。

 

  • トランザクション全体の処理時間(A)       :intra-mart実行時間全体
  • intra-martのカスタムロジックの処理時間(B)    :コールされたJavaScriptの実行時間
  • intra-mart本体                                   :上記(A)と(B)の差分

 

利用条件

この機能を使用するための要件は次の通りです。

 

①Shelty Manager/Agentのバージョンが2.6.0以上であること
②スクリプト開発モデルで開発されたカスタムロジックであること
③自動コンパイルモードで実行されていること
  source-config.xmlファイルにてコンパイルモードを定義します。
  このファイルが配置されているディレクトリ内(サブディレクトリを含む)のプログラムに対して適用されます。

 

ES/1 Sheltyを使ってintra-martを分析される際には、こちらの機能の活用をご検討いただければ幸いです。
ご不明な点等ございましたら、担当SEへご連絡いただければと思います。