高度なカスタマイズ > Info*Engine ユーザーガイド > Info*Engine カスタムタグリファレンス > Info*Engine タグ > core ライブラリのタグ > resetService
  
resetService
resetService タグは、JSP ページ上またはセッション内の Info*Engine カスタムタグによって使用される Info*Engine オブジェクト (com.infoengine.jsp.InfoEngine) をリセットします。page 範囲を指定すると、リセットオブジェクトはページの実行中にのみ存在します。session 範囲を指定すると、リセットオブジェクトはセッション内のすべてのページで使用できます。
page 範囲を使用して Info*Engine オブジェクトをリセットすると、以下の状況が発生します。
ページで利用可能であったすべての VDB グループが、新しいオブジェクト内で使用できなくなります。
オブジェクトのリセット後に作成された VDB グループはすべて、ページの page ディレクティブに session=TRUE が含まれていても、そのページでのみ使用できます。
com.infoengine.object.factory.Group クラスの addGroup メソッドを使用してグループをセッション VDB からページ VDB に、またはページ VDB からセッション VDB にコピーできます。
セッション範囲を使用して Info*Engine オブジェクトをリセットすると、セッションで使用できた VDB グループは新しいオブジェクト内で使用できなくなります。
既存の Info*Engine オブジェクトを明示的に保存しないかぎり、resetService タグを使用してオブジェクトをリセットすると、既存のオブジェクトは使用できなくなります。
リセットオブジェクトに新しい変数名を指定すると、Info*Engine Server Access Kit (SAK) のメソッドを使用するコード内で新しいサービスオブジェクトを名前で参照できます。たとえば、VDB 情報へのアクセス、グループの読み込み、行および列の書式設定などが可能です。
resetService タグは以下の状況で非常に役立ちます。
VDB 内のグループにアクセスするときに競合を避ける。複数の JSP ページから構成されているアプリケーションにセッション範囲が設定されており、VDB グループへの複数のリクエストが同時に発生する可能性がある場合、このタグによるリセットが必要な場合があります。ページごとに Info*Engine オブジェクトをリセットしない限り、各リクエストが所定のグループに戻されるかどうかが確実でない場合があります。このタグを使用すると、ほかの情報には session 範囲を設定する一方で、VDB 内で使用可能なグループを、ページ上で作成されたグループに制限できます。
VDB のクリーンアップアプリケーションで作成された多くの VDB グループが不要になる場合は、VDB をリセットしてリソースを解放できます。
* 
このタグは JSP ページでのみ使用してください。スタンドアロン Info*Engine タスクでは使用しないでください。
変数名を省略するか、一意のオブジェクト名を指定すれば、同じページに複数の resetService タグを指定できます。複数の resetService タグ、または getService タグと resetService タグに同じ変数名を指定することはできません。
このタグはほかの Info*Engine タグに組み込むことができません。
構文
<ie:resetService varName="variable_name"
scope="[PAGE | SESSION]"/>
属性の説明
varName
Info*Engine オブジェクトの Java 変数名を指定します。このタグは変数を定義します。この属性に名前を指定する前に変数を定義しないでください。getService タグまたは関連付けられているほかの resetService タグで指定されている名前を変数名として使用することはできません。
この属性はオプションです。この属性を省略すると、SAK メソッドによってオブジェクトを参照できません。
scope
Info*Engine オブジェクトが保存される場所を指定します。範囲の有効な値は以下のとおりです。
PAGE - オブジェクトの範囲を、タグが使用されるページに設定します。
SESSION - オブジェクトの範囲を、タグが使用されるセッションに設定します。
この属性はオプションです。この属性を省略すると、この値はデフォルトで、使用されている Info*Engine オブジェクトの場所になります。page ディレクティブに session=true が含まれている場合は、セッション Info*Engine オブジェクトがリセットされます。含まれていない場合は、ページ Info*Engine オブジェクトがリセットされます。
以下の例は、ページに session 範囲があり、Info*Engine の core タグライブラリのタグを使用し、タグに ie プリフィックスを使用することを宣言します。この例では、EMPLOYEEdata 内の行数を取得する getService タグの例を展開します。この例は、resetService タグを使用してページのサービスオブジェクトをリセットし、ほかの照会を続行します。
<%@page language="java" session="true" errorPage="../IEError.jsp"%>
<%@ taglib uri="http://www.ptc.com/infoengine/taglib/core"
prefix="ie" %>
<html>
<body>
<!-- perform a query -->
<ie:webject name="Query-Objects" type="OBJ">
<ie:param name="INSTANCE" data="jdbcAdapter"/>
<ie:param name="CLASS" data="EMP"/>
<ie:param name="WHERE" data="()"/>
<ie:param name="GROUP_OUT" data="EMPLOYEEdata"/>
</ie:webject>
<!-- display how many elements were returned -->
<ie:getService varName="ieObj"/>
<P>Search returned
<b><%=ieObj.getElementCount()%></b> employees.</P>
<!-- reset the VDB for the page -->
<ie:resetService varName="ieObjII" scope="PAGE"/>
<!-- perform additional queries -->
.
.
.
</body>
</html>
* 
resetService タグはページの残りのサービスだけをリセットするため、ページ処理の最後にセッション VDB に EMPLOYEEdata グループが含められます。