Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » Mobile Link サーバー管理 » Mobile Link サーバーテクノロジ » リモートデータベースの集中管理

 

リモートタスク

リモートタスクは、リモートタスクの集中管理を実行するときの作業単位です。リモートタスクは、次の要素で構成されます。

  • 1 つ以上のトリガーメカニズム

  • オプションの条件

  • 順序付けされたコマンドのコレクション

  • その他のプロパティ

タスクは、Sybase Central 用の Mobile Link 12 プラグインを使用して管理者が作成します。設計時には、プロジェクト内の管理者のコンピューターでローカルに保存されます。 タスクの構築に使用できるコマンドのリストについては、コマンドを参照してください。

一般的に、タスクは別のタスクの完了に依存しません。ただし、1 つのタスクでリモートデータベースに書き込みを行い、別のタスクの条件でその値を問い合わせるようにすることで、他のタスクに依存するタスクを作成することもできます。

管理者は、エージェントでタスクの受信準備ができると、タスクを展開します。展開済みタスクは、統合データベースにコピーされます。この時点ではタスクに 2 つのコピーが存在します (統合データベース内の展開済みタスクとプロジェクト内の設計時のタスク)。展開済みタスクは変更できません。ただし、タスクを作成するために使用された設計時のタスクは、変更して再展開できます (2 つ目の展開済みタスクを作成するため)。展開済みタスクは、キャンセル、起動 (SIRT)、再アクティブ化、新しい受信者への割り当てを行うことができます。

展開済みタスクは、1 つ以上のエージェントに割り当てて実行できます。エージェントに割り当てられたタスクは、エージェントにダウンロードされます。エージェントは、適切な時間にタスクを実行し、オプションとして実行結果を統合データベースにアップロードします。管理者は、Sybase Central で Mobile Link 12 プラグインを使用して結果を確認できます。

タスクには次の属性があります。

  • [名前]   リモートタスクには 2 つの名前があります。1 つはプロジェクト内に保存されたタスクの設計時のバージョンを識別し、もう 1 つは展開済みタスクを識別します。通常、2 つの名前は同じです。

    タスクの設計時の名前はタスクを作成するときに割り当てられ、プロジェクト内のタスク間でユニークである必要があります。展開済みタスクの名前はタスクを展開するときに割り当てられ、統合データベースト内の展開済みタスク間でユニークである必要があります。

  • 説明   タスクの説明は、入力可能であり、タスクに関連付ける任意のテキストを含めることができます。この説明は、プロジェクトと統合データベース (タスクの展開後) に保存されますが、エージェントには送信されません。

  • [トリガーのメカニズム]   リモートタスクのトリガーメカニズムによって、エージェントでのタスクの実行時期が決まります。1 つのタスクに複数のトリガーメカニズムが存在することがあります。3 つのトリガーメカニズムがサポートされています。

    • [スケジュールに従う]   タスクは、特定の時刻または特定の時間間隔でトリガーされます。このオプションは、タスクに対して明示的に設定します。

    • [エージェントで受信されたとき]   タスクは、エージェントで受信されたときにトリガーされ、1 回のみ実行されます。このオプションは、タスクに対して明示的に設定します。

    • [オンデマンド]   タスクは、サーバー起動リモートタスク (SIRT) と呼ばれるプロセスでサーバーからのメッセージによっていつでもトリガーできます。1 回のみ実行するように設定されていないすべてのタスクでは、「オンデマンド」でのトリガーがサポートされています。

  • [条件]   タスクを実行する前に、すべての条件が満たされている必要があります。タスクがトリガーされた時点ですべての条件が満たされていない場合は、実行の試みが失敗したと見なされ、タスクを再度トリガーして条件を再評価する必要があります。

  • リモートスキーマ名   オプションとして、タスクをリモートスキーマ名に関連付けることができます。リモートデータベースにアクセスする必要があるタスクは、リモートスキーマ名に関連付ける必要があります。リモートスキーマ名は、タスクの実行時にエージェントからアクセスする必要があるデータベースを判断するために使用されます。create database、drop database、execute SQL、synchronize のいずれかのコマンドがタスクに含まれている場合は、タスクをリモートスキーマ名に関連付けてください。また、SQL 条件を使用してタスクが実行できるかどうかを判断する場合は、リモートタスクもリモートスキーマ名に関連付ける必要があります。

  • コマンド   タスクには、必要な操作を実行する順序付けされたコマンドのセットが含まれています。コマンドの指定順序によって、タスク内でのコマンドの実行順序が定義されます。コマンドは互いに依存することがあるため、コマンドの順序には十分に注意してください。 コマンドを参照してください。

  • [最大再試行回数]   各コマンドには、コマンドが失敗した場合にタスクまたはコマンドを再試行するために使用できる「失敗時」のアクションがあります。このオプションを使用して、1 回の実行に有効な再試行回数を制限できます。

  • [再試行間隔]   このオプションは、コマンドが失敗した後でコマンドまたはタスクを再試行するまでの待機時間を指定します。この遅延によって、コマンドまたはタスクが再試行される前に、失敗の原因となった一時的な状況 (データベーステーブルやファイルのロックなど) が解消されることがあります。再試行の遅延は、「短」期間であることが前提となります。再試行の間では、タスク条件は再評価されません。

  • [最大実行時間]   タスクを実行したとき、管理者が意図したように動作しない場合があります。たとえば、OS 呼び出しがハングする、同期の実行速度が非常に遅い、データベースを使用する別の接続によって SQL 文がブロックされるなどの場合があります。タスクの最大実行時間を設定することによって、タスクの実行時間を制限できます。最大実行時間に達すると、タスクは終了します (タスクが実際にいつ終了するかは、その操作を中断できるかどうかによって異なります)。タスクのステータスがタイムアウトを反映して設定され、そのタスクは再度トリガーされるまで再試行されません。タスク内のコマンドが失敗し、タスクまたはコマンドを再試行する必要がある場合は、遅延後に最大実行時間がリセットされます。したがって、最大実行時間は、タスクの実行または再試行ごとの値と見なされます。最大実行時間には、すべての再試行の合計時間およびプロンプトコマンドは含まれません。

  • [スキーマの変更]   スキーマの変更タスクは、リモートデータベースのスキーマを変更します。タスクが成功すると、リモートデータベースのリモートスキーマ名も更新されます。スキーマの変更タスクは常に優先度高のタスクであり、完了時にステータスを通知します。

  • [優先度高]   優先度高のタスクは、常に、エージェントによって受信された時点でトリガーされ、現在実行中のタスクが完了するとすぐに実行されます。ただし、スケジュールに従って実行されない場合や、実行条件が存在しない場合もあります。優先度高とマークされているタスクは、他のタスクからの干渉を防ぐため、実行中の他のタスクが存在しないときにのみ実行されます。

  • [ステータスレポート]   タスクのステータスレポートオプションを使用すると、タスクが正常に完了した場合と失敗した場合の両方において、統合データベースに結果を返すかどうか、返す場合はその時期を指定できます。有効なオプションは次のとおりです。

    • [ステータスのみ送信]   タスクの結果はレポートされません。ただし、成功または失敗したタスクの数に関する情報は、保持され、レポートされます。

    • [エージェントがエージェントデータベースを次回に同期するときに結果を返す]   タスクの結果とステータスが保持され、エージェントがエージェントデータベースを次回に同期するときにレポートされます。

    • [タスクの実行が完了した時点で結果をすぐに返す]   タスクの結果とステータスは、タスクが完了した時点ですぐにレポートされます。

  • ランダムな遅延時間   指定のタスクによって、実行後に結果を Mbile Link サーバーに結果が送信されたり、またはリモートデータベースがサーバーと同期する結果となったときに膨大な数のリモートが同時にトリガされた場合に、タスクにランダムな遅延時間を設定することによって、設定可能な一定の期間、サーバーの同期負荷を均一に分散させることができます。

    リモートタスクには、ランダムな遅延時間を設定できます。秒数で表される時間 N を設定することによって、各エージェントではランダムな秒数 (0 ~ N 秒) が生成され、その値に従って各タスクの実行を遅延させます。スケジュールされたタスクの場合には、最初のタスクが実行される前にランダムな遅延が生成され、それぞれの実行に使用されます。タスクはスケジュールされた時間に実行されますが、ランダムな遅延によってオフセットされます。それによって、タスクの実行時間のデルタ時間とスケジュールとの整合性が維持されます。

    ランダムな遅延時間では、スケジュールされたタスクの最小デルタ時間より大きな値を設定することはおすすめしません。タスクが「オンデマンド」タスクの場合、つまりサーバーによって起動される場合には、タスクが起動されるたびに、ランダムな遅延が生成され実行の遅延に使用されます。タスクが「受信時に実行」されるタスクの場合には、最初にタスクが実行されたときにのみ、ランダムな遅延が生成され実行の遅延に使用されます。

 リモートタスクのロジック
 リモートタスクの作成
 リモートタスクの編集
 リモートタスクの展開

展開済みリモートタスクの操作
サーバー起動リモートタスク (SIRT)
コマンド
パラメーターの変数
ステータス
システムプロシージャー