非同期処理サービス構築の覚書(旧)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「...
-[[戻る>非同期処理サービス]]
*目次 [#ld25e8d1]
#contents
*概要 [#sf4b4148]
[[非同期処理サービス]]構築のチュートリアル作成前段階のメモ
*準備 [#a7c2e6de]
環境を準備する。
-Visual Studio 2010 以上の任意のエディション
-SQL Server 任意のバージョンとエディション
-Open棟梁 v01-70 以上のテンプレート
本ページの作成と検証には、
-Windows 7
-Visual Studio 2015
-SQL Server 2014
-root_VS2015(v02-20)
を使用した。
*手順 [#x445dade]
**前提ソフトウェアのインストール [#e3e22d57]
以下をインストール
-Visual Studio 2010 以上の任意のエディション
-SQL Server 任意のバージョンとエディション
**[[非同期処理サービス]]のテンプレート [#n5812bc3]
***取得 [#c82a8793]
-GithubからOpen棟梁(v01-70 以上)- 非同期処理サービスの...
https://github.com/OpenTouryoProject/OpenTouryoTemplates
--必要に応じて、branchやtagを指定。以下は、02-20のtagを指...
https://github.com/OpenTouryoProject/OpenTouryo/tree/02-20
***デプロイ [#z5312d78]
root_VS2010-2015のうちの何れかをC:\rootとしてデプロイ。
***ビルド [#c241ea76]
Readme.mdを参考にして一通りのビルドを行う。
**データベースの準備 [#s0240817]
***作成 [#g96ed721]
-AsyncProcessingServiceDBというデータベースを作成する。
***セキュリティ設定 [#lfdd7d5c]
サービス・アカウントからSQL Serverにログインする。
なので、以下の手順に従って、~
ローカル・システム・アカウントのログインと権限付与をする。
-システム・アカウントのユーザを作成する。
--Windows ユーザー
--NT AUTHORITY\SYSTEM
-アクセス権限を付与する。
--「所有されているスキーマ」に”db_owner”を追加する。
--「メンバーシップ」に”db_owner”を追加する。
***テーブルの作成 [#nfba18e9]
-このデータベースにテーブルを作成する。以下のSQLファイル...
https://github.com/OpenTouryoProject/OpenTouryo/tree/02-2...
--CreateAsyncProcessingServiceStatusManagementTableScript...
--CreateEnumAsyncCommandTableScript.sql
--CreateOpenTouryoCodeTableScript.sql
**[[非同期処理サービス]]の準備 [#nd7f243e]
***設定 [#x8185bb2]
app.configファイルの接続文字列を設定する。
<connectionStrings>
<!-- SQL Server / SQL Client用 -->
<add name="ConnectionString_SQL" connectionString="Da...
</connectionStrings>
***ビルド [#k8d96065]
AsyncProcessingServiceをビルドする。~
Visual Studioからソリューション・ファイルを開いてビルドす...
C:\root\programs\C#\Frameworks\Infrastructure\ServiceInt...
***インストール [#d904c281]
ビルド出力(*.exe)をWindowsサービスとしてインストールす...
-CMDを管理者として起動し、CD(Change Directory)コマンド...
C:\Windows\Microsoft.NET\Framework64\v4.0.30319
-以下のInstallUtilコマンドで、ビルド出力(*.exe)をWindow...
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>InstallU...
-管理ツールのサービス(コマンドからはservices.msc)を起動...
サービスの一覧にAsyncProcessingServiceが登録されているこ...
**非同期処理タスクの概要 [#k54bf73d]
非同期処理のクライアントとサーバを開発する。
以下のソリューションファイルを開くと、2つのプロジェクト...
"C:\root\programs\C#\Samples\AsyncSvc_sample\AsyncSvc_sa...
***非同期処理タスクを投入するクライアント [#e2a3cf97]
TestAsyncSvc_Sample
非同期処理をキューに登録するプログラム。
-設定~
app.configファイルの接続文字列を設定する。
<connectionStrings>
<!-- SQL Server / SQL Client用 -->
<add name="ConnectionString_SQL" connectionString="Da...
</connectionStrings>
-ビルド~
Visual Studioから普通にビルドする。
***サーバで実行される非同期処理タスク [#ma5282bf]
AsyncSvc_sample
登録された非同期処理を取り出しディスバッチする先のビジネ...
-ビルド~
Visual Studioから普通にビルドする。
-デプロイ~
ビルドが完了したら、[[非同期処理サービス]]のプロジェクト...
"C:\root\programs\C#\Frameworks\Infrastructure\ServiceIn...
**[[非同期処理サービス]]の実行 [#ya79b39f]
***実行 [#u132a415]
-AsyncProcessingServiceをSCMから開始する。
-TestAsyncSvc_Sampleを実行して非同期処理タスクを投入する。
***確認 [#z7f71db1]
-非同期処理管理テーブルを監視して非同期処理が遂行されるこ...
#ref(db.png,left,nowrap,非同期処理管理テーブル,50%)
-[[非同期処理サービス]]が実行されない場合は以下のログを分...
"C:\root\files\resource\Log\"
--[[非同期処理サービス]]
---ASYNC-SERVICE.log
---ACCESS-ASYNC.YYYY-MM-DD.log
---SQLTRACE-ASYNC.YYYY-MM-DD.log
--クライアント
---ACCESS.YYYY-MM-DD.log
---SQLTRACE.YYYY-MM-DD.log
*[[非同期処理サービス]]の開発方法 [#pb6b5072]
**引数・戻り値、B層、D層 [#fa461efd]
-https://github.com/OpenTouryoProject/OpenTouryo/tree/02-...
**[[非同期処理サービス]]本体 [#g1d61033]
-https://github.com/OpenTouryoProject/OpenTouryo/tree/02-...
*非同期処理タスクの開発方法 [#pb6b5072]
https://github.com/OpenTouryoProject/OpenTouryo/blob/02-2...
**MyApsBaseLogic [#z7b68fda]
-https://github.com/OpenTouryoProject/OpenTouryo/blob/02-...
--非同期処理タスクのB層が継承するクラス。
--業務テーブルと非同期処理管理テーブルに接続可能。
***DamKeyforABT [#md6775b3]
業務テーブルにアクセスする場合に使用するDam
***DamKeyforAMT [#uef4e193]
非同期処理管理テーブルにアクセスする場合に使用するDam
***接続文字列 [#bfb3a689]
-非同期処理管理テーブルと業務テーブルが同じデータベース内...
DamKeyforABTとDamKeyforAMTの接続文字列には同じ接続文字列...
-非同期処理管理テーブルと業務テーブルが異なるデータベース...
以下をカスタマイズして、DamKeyforABTとDamKeyforAMTの接続...
**UOC_Start(UOC_XXXX) [#l83ef167]
-https://github.com/OpenTouryoProject/OpenTouryo/blob/02-...
***概要 [#necf8a68]
-[[サーバで実行される非同期処理タスク>#ma5282bf]]のエント...
-[[通信制御機能]]のインプロセス呼び出しにより呼び出される。
***設定 [#m0062182]
インプロセス呼び出しの定義は以下のファイルの中に定義にさ...
https://github.com/OpenTouryoProject/OpenTouryo/blob/02-2...
***処理の流れ [#z7f12540]
-[[DeserializeFromBase64String>#i4045a40]]メソッドで業務...
-[[GetCommandValue>#w05390ae]]メソッドによりCommandIDを取...
-CommandIDがStopの場合、
--[[ResumeProcessing>#e40a69f7]]メソッドでCommandIDを「0...
--既存処理のResumeを行う。
-それ以外の場合、
--新規処理の初期化を行う。
-Updateメソッドにより業務処理を行う。
-処理を抜けた場合、正常終了の扱いとなる。
**業務処理メソッド [#h47d5d87]
-https://github.com/OpenTouryoProject/OpenTouryo/blob/02-...
***Updateメソッド(業務処理) [#w087037a]
-[[GetCommandValue>#w05390ae]]メソッドによりCommandIDを取...
-取得したCommandIDをチェックする。
--Stop:業務例外をthrowして処理をリトライする。
--Abort:システム例外をthrowして処理をABENDする。
--その他:
---業務処理([[GenerateProgressRate>#mde46ab2]])を実行す...
---進捗率を[[UpdateProgressRate>#gbfce054]]メソッドでアッ...
-補足
--必要に応じてループで実装する。
--サンプルでは一定の確率で
---StopとAbortを実行する。
---[[UpdateTaskCommand>#y4b09b2b]]メソッドを使用する。
***GenerateProgressRateメソッド [#mde46ab2]
ダミーの業務処理。ランダムな進捗率を返す。
**Utilityメソッド [#t9139027]
-https://github.com/OpenTouryoProject/OpenTouryo/blob/02-...
***DeserializeFromBase64Stringメソッド [#i4045a40]
DeserializeFromBase64Stringメソッドで、~
userParameterValue.Dataの業務データをバイナリデータからオ...
***SerializeToBase64Stringメソッド [#y9726992]
[[DeserializeFromBase64String>#i4045a40]]メソッドの逆を行...
***GetCommandValueメソッド [#w05390ae]
非同期処理管理テーブルから本非同期タスクのTaskIDに対応す...
***ResumeProcessingメソッド [#e40a69f7]
非同期処理管理テーブルの本非同期タスクのTaskIDに対応するC...
[[UpdateTaskCommand>#y4b09b2b]]メソッドによって「0」クリ...
***UpdateProgressRateメソッド [#gbfce054]
非同期処理管理テーブルの本非同期タスクのTaskIDに対応する...
***UpdateTaskCommandメソッド [#y4b09b2b]
非同期処理管理テーブルの本非同期タスクのTaskIDに対応するC...
終了行:
「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「...
-[[戻る>非同期処理サービス]]
*目次 [#ld25e8d1]
#contents
*概要 [#sf4b4148]
[[非同期処理サービス]]構築のチュートリアル作成前段階のメモ
*準備 [#a7c2e6de]
環境を準備する。
-Visual Studio 2010 以上の任意のエディション
-SQL Server 任意のバージョンとエディション
-Open棟梁 v01-70 以上のテンプレート
本ページの作成と検証には、
-Windows 7
-Visual Studio 2015
-SQL Server 2014
-root_VS2015(v02-20)
を使用した。
*手順 [#x445dade]
**前提ソフトウェアのインストール [#e3e22d57]
以下をインストール
-Visual Studio 2010 以上の任意のエディション
-SQL Server 任意のバージョンとエディション
**[[非同期処理サービス]]のテンプレート [#n5812bc3]
***取得 [#c82a8793]
-GithubからOpen棟梁(v01-70 以上)- 非同期処理サービスの...
https://github.com/OpenTouryoProject/OpenTouryoTemplates
--必要に応じて、branchやtagを指定。以下は、02-20のtagを指...
https://github.com/OpenTouryoProject/OpenTouryo/tree/02-20
***デプロイ [#z5312d78]
root_VS2010-2015のうちの何れかをC:\rootとしてデプロイ。
***ビルド [#c241ea76]
Readme.mdを参考にして一通りのビルドを行う。
**データベースの準備 [#s0240817]
***作成 [#g96ed721]
-AsyncProcessingServiceDBというデータベースを作成する。
***セキュリティ設定 [#lfdd7d5c]
サービス・アカウントからSQL Serverにログインする。
なので、以下の手順に従って、~
ローカル・システム・アカウントのログインと権限付与をする。
-システム・アカウントのユーザを作成する。
--Windows ユーザー
--NT AUTHORITY\SYSTEM
-アクセス権限を付与する。
--「所有されているスキーマ」に”db_owner”を追加する。
--「メンバーシップ」に”db_owner”を追加する。
***テーブルの作成 [#nfba18e9]
-このデータベースにテーブルを作成する。以下のSQLファイル...
https://github.com/OpenTouryoProject/OpenTouryo/tree/02-2...
--CreateAsyncProcessingServiceStatusManagementTableScript...
--CreateEnumAsyncCommandTableScript.sql
--CreateOpenTouryoCodeTableScript.sql
**[[非同期処理サービス]]の準備 [#nd7f243e]
***設定 [#x8185bb2]
app.configファイルの接続文字列を設定する。
<connectionStrings>
<!-- SQL Server / SQL Client用 -->
<add name="ConnectionString_SQL" connectionString="Da...
</connectionStrings>
***ビルド [#k8d96065]
AsyncProcessingServiceをビルドする。~
Visual Studioからソリューション・ファイルを開いてビルドす...
C:\root\programs\C#\Frameworks\Infrastructure\ServiceInt...
***インストール [#d904c281]
ビルド出力(*.exe)をWindowsサービスとしてインストールす...
-CMDを管理者として起動し、CD(Change Directory)コマンド...
C:\Windows\Microsoft.NET\Framework64\v4.0.30319
-以下のInstallUtilコマンドで、ビルド出力(*.exe)をWindow...
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>InstallU...
-管理ツールのサービス(コマンドからはservices.msc)を起動...
サービスの一覧にAsyncProcessingServiceが登録されているこ...
**非同期処理タスクの概要 [#k54bf73d]
非同期処理のクライアントとサーバを開発する。
以下のソリューションファイルを開くと、2つのプロジェクト...
"C:\root\programs\C#\Samples\AsyncSvc_sample\AsyncSvc_sa...
***非同期処理タスクを投入するクライアント [#e2a3cf97]
TestAsyncSvc_Sample
非同期処理をキューに登録するプログラム。
-設定~
app.configファイルの接続文字列を設定する。
<connectionStrings>
<!-- SQL Server / SQL Client用 -->
<add name="ConnectionString_SQL" connectionString="Da...
</connectionStrings>
-ビルド~
Visual Studioから普通にビルドする。
***サーバで実行される非同期処理タスク [#ma5282bf]
AsyncSvc_sample
登録された非同期処理を取り出しディスバッチする先のビジネ...
-ビルド~
Visual Studioから普通にビルドする。
-デプロイ~
ビルドが完了したら、[[非同期処理サービス]]のプロジェクト...
"C:\root\programs\C#\Frameworks\Infrastructure\ServiceIn...
**[[非同期処理サービス]]の実行 [#ya79b39f]
***実行 [#u132a415]
-AsyncProcessingServiceをSCMから開始する。
-TestAsyncSvc_Sampleを実行して非同期処理タスクを投入する。
***確認 [#z7f71db1]
-非同期処理管理テーブルを監視して非同期処理が遂行されるこ...
#ref(db.png,left,nowrap,非同期処理管理テーブル,50%)
-[[非同期処理サービス]]が実行されない場合は以下のログを分...
"C:\root\files\resource\Log\"
--[[非同期処理サービス]]
---ASYNC-SERVICE.log
---ACCESS-ASYNC.YYYY-MM-DD.log
---SQLTRACE-ASYNC.YYYY-MM-DD.log
--クライアント
---ACCESS.YYYY-MM-DD.log
---SQLTRACE.YYYY-MM-DD.log
*[[非同期処理サービス]]の開発方法 [#pb6b5072]
**引数・戻り値、B層、D層 [#fa461efd]
-https://github.com/OpenTouryoProject/OpenTouryo/tree/02-...
**[[非同期処理サービス]]本体 [#g1d61033]
-https://github.com/OpenTouryoProject/OpenTouryo/tree/02-...
*非同期処理タスクの開発方法 [#pb6b5072]
https://github.com/OpenTouryoProject/OpenTouryo/blob/02-2...
**MyApsBaseLogic [#z7b68fda]
-https://github.com/OpenTouryoProject/OpenTouryo/blob/02-...
--非同期処理タスクのB層が継承するクラス。
--業務テーブルと非同期処理管理テーブルに接続可能。
***DamKeyforABT [#md6775b3]
業務テーブルにアクセスする場合に使用するDam
***DamKeyforAMT [#uef4e193]
非同期処理管理テーブルにアクセスする場合に使用するDam
***接続文字列 [#bfb3a689]
-非同期処理管理テーブルと業務テーブルが同じデータベース内...
DamKeyforABTとDamKeyforAMTの接続文字列には同じ接続文字列...
-非同期処理管理テーブルと業務テーブルが異なるデータベース...
以下をカスタマイズして、DamKeyforABTとDamKeyforAMTの接続...
**UOC_Start(UOC_XXXX) [#l83ef167]
-https://github.com/OpenTouryoProject/OpenTouryo/blob/02-...
***概要 [#necf8a68]
-[[サーバで実行される非同期処理タスク>#ma5282bf]]のエント...
-[[通信制御機能]]のインプロセス呼び出しにより呼び出される。
***設定 [#m0062182]
インプロセス呼び出しの定義は以下のファイルの中に定義にさ...
https://github.com/OpenTouryoProject/OpenTouryo/blob/02-2...
***処理の流れ [#z7f12540]
-[[DeserializeFromBase64String>#i4045a40]]メソッドで業務...
-[[GetCommandValue>#w05390ae]]メソッドによりCommandIDを取...
-CommandIDがStopの場合、
--[[ResumeProcessing>#e40a69f7]]メソッドでCommandIDを「0...
--既存処理のResumeを行う。
-それ以外の場合、
--新規処理の初期化を行う。
-Updateメソッドにより業務処理を行う。
-処理を抜けた場合、正常終了の扱いとなる。
**業務処理メソッド [#h47d5d87]
-https://github.com/OpenTouryoProject/OpenTouryo/blob/02-...
***Updateメソッド(業務処理) [#w087037a]
-[[GetCommandValue>#w05390ae]]メソッドによりCommandIDを取...
-取得したCommandIDをチェックする。
--Stop:業務例外をthrowして処理をリトライする。
--Abort:システム例外をthrowして処理をABENDする。
--その他:
---業務処理([[GenerateProgressRate>#mde46ab2]])を実行す...
---進捗率を[[UpdateProgressRate>#gbfce054]]メソッドでアッ...
-補足
--必要に応じてループで実装する。
--サンプルでは一定の確率で
---StopとAbortを実行する。
---[[UpdateTaskCommand>#y4b09b2b]]メソッドを使用する。
***GenerateProgressRateメソッド [#mde46ab2]
ダミーの業務処理。ランダムな進捗率を返す。
**Utilityメソッド [#t9139027]
-https://github.com/OpenTouryoProject/OpenTouryo/blob/02-...
***DeserializeFromBase64Stringメソッド [#i4045a40]
DeserializeFromBase64Stringメソッドで、~
userParameterValue.Dataの業務データをバイナリデータからオ...
***SerializeToBase64Stringメソッド [#y9726992]
[[DeserializeFromBase64String>#i4045a40]]メソッドの逆を行...
***GetCommandValueメソッド [#w05390ae]
非同期処理管理テーブルから本非同期タスクのTaskIDに対応す...
***ResumeProcessingメソッド [#e40a69f7]
非同期処理管理テーブルの本非同期タスクのTaskIDに対応するC...
[[UpdateTaskCommand>#y4b09b2b]]メソッドによって「0」クリ...
***UpdateProgressRateメソッド [#gbfce054]
非同期処理管理テーブルの本非同期タスクのTaskIDに対応する...
***UpdateTaskCommandメソッド [#y4b09b2b]
非同期処理管理テーブルの本非同期タスクのTaskIDに対応するC...
ページ名: