LEADTOOLSライブラリ

フレームを表示

サーバ設定

Workers.xml

LEADTOOLS分散コンピューティング(ジョブプロセッサー)SDKは、Workers.XMLファイルで構成されるのに大部分のジョブプロセッサーワーカー設定を見込みます。Workers.XMLファイルはWorkerService WCFサービスによって必要とされて、サーバにWorkerService WCFサービスのApp_Dataディレクトリの中に存在しなければなりません。Workers.XML構成ファイルによって、多くの設定(以下の設定を含む)を制御することができます:

Workers.XML構成ファイルのスキーマは、各々の設定の使用法とともに、下で示されます。

<Workers> 
               <Worker Name="*" NewJobCheckPeriod="2"> 
                  <JobTypes> 
                     <JobType Name="XYZ" MaxNumberOfJobs="5" CpuThreshold="80" UseCpuThreshold="false" ProgressRate="10" AssumeHangAfter="60" Attempts="3"/> 
                  </JobTypes> 
               </Worker>
               <Worker Name="Worker1" NewJobCheckPeriod="2"> 
                  <JobTypes> 
                     <JobType Name="Ocr" MaxNumberOfJobs="5" CpuThreshold="80" UseCpuThreshold="false" ProgressRate="10" AssumeHangAfter="60" Attempts="3"/> 
                     <JobType Name="Multimedia" MaxNumberOfJobs="5" CpuThreshold="80" UseCpuThreshold="false" ProgressRate="10" AssumeHangAfter="60" Attempts="3"/> 
                  </JobTypes> 
               </Worker> 
            </Workers>

ワーカー:ワーカーマシンを表しているノード。

名前(ワーカーノード):ワーカーの名前を表している属性。名前が構成に位置しないそれらのマシンのために使われなければならない設定を指定するために、「*」を使います。

NewJobCheckPeriod:ワーカーがこれの新しいジョブのために中央サーバを得票しなければならない瞬間周波数を中で表している属性型。

JobTypes:このマシンがどの種類のジョブを処理するかについて表しているノード。

ジョブタイプ:ワーカーのためにジョブの特定の型のために設定を表しているノード。

名前(JobTypeノード):このジョブの名前を表している属性型。

MaxNumberOfJobs:このマシンがこのジョブのために受け取ることができる並列のジョブの最大数を表している属性型。

CpuThreshold:このマシンのために最大のCPUパーセンテージしきい値を表している属性。CPU使用がこの図の下でドロップするまで、新しいジョブは受け取られることができません。たとえば、CpuThresholdが80に設定されるならば、現在のCPU使用が80%以下でドロップしない限り、この型の新しいジョブは受け取られません。

UseCpuThreshold:ワーカーがCpuThresholdで特定された値を使わなければならないかどうか表している属性。この値がtrueであるならば、新しいジョブが受け取られるとき、CpuThresholdによって設定される値は制御するのに用いられます。この値がfalseであるならば、ジョブが受け取られるとき、MaxNumberOfJobsによって設定される値は制御するのに用いられます。

ProgressRate:秒単位で、ワーカープロセスがUpdatePercentageメソッドを通して進捗を郵送しなければならない率を表している属性。

AssumeHangAfter:ジョブプロセスの最大時間を秒単位で表す属性は、ハングアップして強制終了とみなされる前に進捗に変更なく進むことができます。ジョブが誤ってハングアップされ強制終了されたとみなされないように、AssumeHangAfter値はProgressRate値より大きくなければなりません。大きな期間が進行中に変更なしで経つことができる場合、この値により大きくて欲しいです。たとえば、プロセスが進行中に変更なしで5分済ますことができるならば、この値は300(毎分5×60秒)より大きくなければなりません。

試み:正常に完了しないならば、この型のジョブを試みるために最大回数を表している属性。

Web.config

WCFサービスweb.configファイルは、以下の設定を格納しなければなりません:

接続ストリング:ジョブプロセッサーデータベースへの接続string。接続ストリングの名前は、「LeadtoolsJobProcessorDB」でなければなりません。以下のfexampleを参照してください。

<connectionStrings> 
               <add name="LeadtoolsJobProcessorDB" connectionString="data source=localhost\SQLEXPRESS;initial catalog =LeadtoolsJobProcessorDB;Trusted_Connection=true;" providerName="System.Data.SqlClient" /> 
            </connectionStrings>

ライセンス情報:そのプロパティ、メソッドとイベントが使われることができる前に、LEADTOOLS分散コンピューティング(ジョブプロセッサー)SDKはロック解除されなければなりません。LEAD機能のロック解除については、「Unlocking Special LEAD Features」を参照してください。ライセンス情報を追加して、分散コンピューティング(ジョブプロセッサー)SDKをロック解除するために、appSettingsセクションで『DeveloperKey』と『LicenseFile』を指定します。『LicenseFile』は、WCFサービスApp_Dataディレクトリになければなりません。サンプルのための下記を参照してください。

<appSettings> 
               <add key="DeveloperKey" value="" />
               <add key="LicenseFile" value="" /> 
             </appSettings>

ロギング情報:WCFサービスのためのロギングは、WCFサービスweb.configファイル(たとえば下記参照)で構成されることができます。ログ記録されるWCFサービス情報はデータベース対話操作を含みます、呼び出しはサービスに作りました、そして、他のサービスはイベントを関連させました。ロギングは、フレームワークをログ記録しているLEADTOOLSを用いて実装されます。フレームワークをログ記録しているLeadtools.Loggingの詳細については、「LEADTOOLSロギングによるプログラミング」を参照してください。

<configSections> <section name="leadLogging" type="Leadtools.Logging.Configuration.ConfigSectionHandler, Leadtools.Logging"/> </configSections> 
               <logging> 
                  <channels> 
                     <channel name="EventLog" type="Leadtools.Logging.LoggingChannel.EventLogLoggingChannel, Leadtools.Logging" Enabled="false" Source="Leadtools.JobProcessor"/>
                  </channels> 
               </logging>

WCFは、設定にサービスを提供します:JobServiceとWorkerServiceは、中央サーバでホストされます。両方のサービスはLEADTOOLS分散コンピューティング(ジョブプロセッサー)SDKによって必要とされて、web.configの『<サービス>』セクションで定義でなければなりません。以下のテーブルは各々のサービスをリストして、分散コンピューティング(ジョブプロセッサー)SDKでインストールされるWCFサービスのweb.configで見つけられることもできるサンプルを提供します。ホスティングWCFサービスとWCF設定を保存するために構成ファイルを使用することの詳細については、「構成ファイルを用いたホスティングWCFサービスと構成しているサービス」を参照してください。

WCFサービス 名前 サービス契約書
JobService Leadtools.Services.JobProcessor.ServiceImplementations.JobService Leadtools.Services.JobProcessor.ServiceContracts.IJobService
WorkerService Leadtools.Services.JobProcessor.ServiceImplementations.WorkerService Leadtools.Services.JobProcessor.ServiceContracts.IWorkerService
<services> 
            <!-- JobService --> 
               <service name="Leadtools.Services.JobProcessor.ServiceImplementations.JobService" behaviorConfiguration="LeadtoolsServiceBehavior"> <endpoint
            contract="Leadtools.Services.JobProcessor.ServiceContracts.IJobService" binding="basicHttpBinding" bindingConfiguration="HttpTextStreaming"
            bindingNamespace="http://Leadtools.JobProcessor.ServiceContracts/2009/01"/> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
            </service> <!-- WorkerService --> <service name="Leadtools.Services.JobProcessor.ServiceImplementations.WorkerService"
            behaviorConfiguration="LeadtoolsServiceBehavior"> <endpoint contract="Leadtools.Services.JobProcessor.ServiceContracts.IWorkerService"
            binding="basicHttpBinding" bindingConfiguration="HttpTextStreaming" bindingNamespace="http://Leadtools.JobProcessor.ServiceContracts/2009/01"/> <endpoint
            address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> </service>

ウィンドウは、ワーカー設定にサービスを提供します

App.config

ウィンドウサービスとユーザーワーカーアセンブリのためのロギングは、アプリケーションapp.configファイル(たとえば下記参照)で構成されることができます。ログ記録されるWindowsサービス情報は、ワーカーに関連したデータベース対話操作、WorkerService WCFサービス対話操作、現在のジョブ情報と他のイベントを含みます。ロギングは、フレームワークをログ記録しているLEADTOOLSを用いて実装されます。フレームワークをログ記録しているLeadtools.Loggingの詳細については、「LEADTOOLSロギングによるプログラミング」を参照してください。

<configSections> <section
            name="leadLogging" type="Leadtools.Logging.Configuration.ConfigSectionHandler, Leadtools.Logging"/> </configSections> <logging> <channels>
            <channel name="EventLog" type="Leadtools.Logging.LoggingChannel.EventLogLoggingChannel, Leadtools.Logging" Enabled="false" Source="Leadtools.JobProcessor"/>
            </channels> </logging>

各々のWindowsサービスは、多くのジョブタイプを処理する設定でありえます。Windowsサービスの数に対する制限が、単一機でインストールされることができるLEADTOOLS分散コンピューティングフレームワークからありません。使っている複数のジョブタイプの詳細については、「LEADTOOLSジョブプロセッサーデータベースを理解すること」を参照してください。

Windowsサービスアプリケーション構成ファイル(app.config)は、このサービスがジョブのどの型を処理するかについて指定することができます。それは、WorkerService WCFサービスのために端点情報も格納します。以下の設定は、app.configファイルの『appSettings』セクションで見つかります。

UserClassTypeName:OnJobReceivedメソッドをオーバーライドして、新しいジョブを処理するクラスの名前空間とクラス(『Namespace.Class』として指定された)。

ジョブタイプ:このサービスが処理するジョブの型。ジョブ型がここで指定されるならば、マシンが定義されないならば、マッチするジョブ型は同じマシンまたはデフォルトのマシン設定(*)の下でWorkers.xmlで定義されなければなりません。ジョブ型がここで指定されないならば、ワーカーはWorkers.xml(型が指定したジョブなしで追加されたジョブだけでなく)でそのワーカーのために定義されるすべてのジョブタイプを処理します。複数のジョブタイプを処理することができる単一のワーカーアセンブリを持っているならば、これは役に立ちます。

WorkerLayerPath:Leadtools.JobProcessor.Workerlayer.exeへのパス。

UserDllPath:カスタムワーカーアセンブリへのパス。カスタムワーカーアセンブリは、プロセスジョブにLeadtools.JobProcessor.Workerlayer.exeによってロードされます。

Windowsサービスは、WorkerService WCFサービス(contract="IWorkerService」)に接続するために、アプリケーションの構成ファイルに明記されている設定を使います。アプリケーション構成ファイルでWCFバインディング、動作と端点情報を指定する方法の詳細については、構成ファイルを用いてサービスを構成することを参照します。

参照

LEADTOOLS分散コンピューティング(ジョブプロセッサー)SDKによるプログラミング
ジョブプロセッサワーカーアセンブリの作成
LEADTOOLSジョブプロセッサーデータベースを理解すること
LEADTOOLS分散コンピューティング(JobProcessor)アプリケーションを展開すること
特殊なLEAD機能のアンロック