ジョブとジョブ テンプレートの設定

ジョブは Oracle ベースのエンタープライズ インダストリ モデルのみで使用できます。ジョブは長いトランザクションとバージョン管理フレームワークを提供します。ジョブを使用すると、データベース内のオブジェクトについて複数の状態を持つことができます。

ジョブ

データはジョブ内でのみ変更できます。ジョブの外部にあるデータは読み込み専用であり、ジョブ内のライブ データと同等です。

オープン: データの変更を開始したら、ジョブはオープンに設定されます。データ変更はそのジョブ内で隔離され、他のジョブやジョブの外部で表示されません。フィーチャ ロックは、悲観的フィーチャ ロックまたは楽観的フィーチャ ロックです。

保留: 変更のレビューおよび承認の準備が整うと、ジョブ(変更されたすべてのデータを含む)は保留に設定されます。データ変更は、すべてのオープン ジョブおよび保留ジョブで表示されます。変更はまだ元に戻せます。

ライブ: 作業が承認され、ジョブの稼働の準備が整った場合、ジョブはライブに設定されます。データ変更はすべてに表示され、元に戻すことはできません。

削除済み: 疑似状態。削除されたジョブはデータベースに格納されません。

ユーザ独自のジョブの状態を追加することもできません。これらは、システム テーブル TB_JOB_STATE および TB_JOB_STATE_TRANSITION に格納されます。

ジョブには 1 つまたは複数のトピックが含まれ、各トピックには独自のジョブの状態があります。トピックのジョブの状態は TB_JOB_TOPIC_STATE に格納されます。

インダストリ モデルのオプションを使用して、ジョブの状態が変わったときにジョブ トポロジ確認を実行するかどうかを指定できます。

注: ジョブを処理するには、Infrastructure Application Extension または AutoCAD Map 3D ツールセット のジョブ マネージャとジョブ エクスプローラを使用します。

インダストリ モデルでジョブを有効にする

ジョブを使用するには、まずインダストリ モデルでジョブを有効にする必要があります。これにより、フィーチャがロックされ、ジョブ内でのみフィーチャを変更できます。

ジョブの有効化では、特定のルーチンを開始します。たとえば、このルーチンでは JOB_VERSION 属性を各フィーチャ クラスに追加し、ジョブ メタデータを書き込みます(TB_JOB* システム テーブル)。

危険: ジョブ システム テーブルを手動で編集してはなりません。

ジョブを「ロック」

オンにすると、複数の Map セッションが同時に同じジョブで作業できなくなります。たとえば、ユーザ A が Map を起動してエンタープライズ プロジェクトを開き、ジョブ 1 で作業します。ユーザ B が Map を起動して同じプロジェクトを開き、現在のジョブとしてジョブ 1 を選択します。エラーメッセージが表示され、ジョブ 1 を作業できないことがユーザ B に通知されます。

注: UI を使用してデッド ロック ジョブを解除することはできません。デッド ロック ジョブは、Map が予期せず閉じた場合に発生することがあります。解除する方法:
  1. Infrastructure Administrator を起動し、プロジェクトを開きます。
  2. [データ モデル]、[フォーム デザイナー]に移動し、システム テーブルで TB_JOB テーブルのフォームを表示して、デッド ロック ジョブの ID (予期せず閉じられた前にユーザが選択したジョブの ID)を見つけます。
  3. TB_JOB_LOCKING テーブルのフォームを表示し、同じジョブ ID を持つレコードを削除します。

ジョブの状態がライブになるときに現在のジョブの履歴をクリアする

オンにすると、状態を保留からライブに変えた場合、現在のジョブ履歴が自動的にクリアされます。この機能は、TB_JOB_VERSION テーブルに保存されるライブ ジョブ履歴データをクリアし、テーブルが大きくなりすぎてパフォーマンスに影響を及ぼさないようにするために使用されます。

悲観的フィーチャ ロック

インダストリ モデルでジョブを有効にすると、フィーチャはロックされます。フィーチャは 1 つのジョブ内でのみ変更できます。楽観的または悲観的ジョブ ロックを使用できます。2 つのタイプのフィーチャ ロックの主な違いはジョブの競合の扱いです。ジョブの競合は、異なるジョブで同一のフィーチャが変更された場合に発生します。

悲観的フィーチャ ロックを使用して、ジョブの競合を早期に検出および解決します。

たとえば、ジョブ A で、ユーザが変圧器を電柱に追加し、ジョブ B で別のユーザ B が同じ電柱を選択してデータベースから削除します。悲観的フィーチャ ロックを使用すると、フィーチャがロックされていることがユーザ B にすばやく警告されます。ユーザ B はフィーチャを変更できません。

ジョブの競合を解決するために、ユーザ B はユーザに連絡して、ユーザは共同で処理方法を決定できます。たとえば、ユーザは[部分転記]コマンドを実行し、ジョブ B から各フィーチャを抽出してジョブ B で変更できるようにします。

ユーザは部分転記を使用し、現在のジョブからフィーチャのサブセットを抽出してその状態を即座にライブに変更します。次に、変更されたフィーチャを他のジョブでもう一度変更できます。

[部分転記]の詳細については、『ユーザ ガイド』の「ジョブの状態を変更する」を参照してください。

楽観的フィーチャ ロック

フィーチャは種々のジョブ内で変更できます。競合が発生した場合でも変更を許可する場合は、楽観的フィーチャ ロックを使用します。ジョブの競合は即時に検出されず、ジョブの状態を変更するときにのみ検出されます。最初のジョブを前方に結合した後、および 2 番目のジョブを前方に結合しようとしているときに、ジョブ競合マネージャが表示されます。

ジョブ テンプレート

ジョブを有効にしたフィーチャ クラスを使用するには、これらのフィーチャ クラスを含むジョブを作成する必要があります。これを行うには、ジョブ テンプレートを使用します。

ジョブ テンプレートは、このテンプレートから作成したジョブで処理できる定義済みのフィーチャ クラスを含んでいます。このジョブに存在しない、ジョブを有効にしたフィーチャ クラスを変更または削除することはできません。

種々のトピックからのフィーチャ クラスを組み合わせて 1 つのジョブ テンプレートにまとめることができます。このテンプレートからジョブを作成するときに、各トピックの状態を個別に変更できます。

注: ジョブ テンプレートを作成する前に、インダストリ モデルでジョブを有効にする必要があります。「エンタープライズ インダストリ モデルでジョブを有効にする」を参照してください。ジョブを有効にできるのは、Oracle ベースのエンタープライズ インダストリ モデルのみです。

ジョブを有効にしたフィーチャ クラスが現在のジョブに含まれる場合にのみ、これらのフィーチャ クラスを編集できます。ジョブの状態がオープンの場合のみ、ジョブを処理できます。

ジョブを有効にしたフィーチャ クラスが現在のジョブに含まれる場合にのみ、ジョブを有効にしたフィーチャ クラスを編集できます。ジョブの状態がオープンの場合にのみ、ジョブを処理できます。

任意の組み合わせのジョブを有効にしたフィーチャ クラスを使用して、任意の数のジョブ テンプレートを定義できます。

1 つまたは複数のユーザ グループに複数のジョブ テンプレートを割り当てることができます。たとえば、セキュリティを向上させるために、限られたジョブ テンプレート セットを使用するようにユーザ グループに許可します。AutoCAD Map 3D ツールセット では、このユーザ グループのメンバーは割り当てられたジョブ テンプレート、およびこれらのテンプレートを使用して作成されたジョブのみを使用できます。

注: 管理者グループのメンバーは、すべてのジョブ テンプレートにアクセスしてすべてのジョブを処理できます。ユーザ グループを作成すると、作成した新しいグループのメンバーは既定ですべてのジョブ テンプレートを使用できます。

[ジョブ管理]で、[ユーザ グループにテンプレートを割り当てる]コマンドを実行して、まだ割り当てられていないジョブ テンプレートをユーザ グループに割り当てます。

注: 以前のバージョンで作成された既存のジョブはユーザ グループに割り当てられません。このため、すべてのユーザが既存のジョブを使用できます。

このワークフローの手順: