JRA公式競馬データ配信サービス JRA-VAN Data Lab.

JRA-VAN DataLab.

競馬ソフト開発コーナー

JV-Link 質問箱

新着記事 リストに戻る
タイトルRe^2: Thead, TaskにてJVLinkClass#JVRead()の実行で例外が発生
記事No6354   [関連記事]
投稿日: 2019/01/21(Mon) 23:55
投稿者ターちゃん
ご回答ありがとうございます。

マルチスレッドに関しては承知いたしました。
ただし、そうだとしますと大量のデータ(セットアップ時や数年分のデータ取得
など)をJV-Linkから取得するにはどのようにすればよいでしょうか?

ウィンドウアプリケーションですので一定時間以内にUIスレッドに処理を戻さ
ないとWindowsがアプリケーションが動作していないと判断しフリーズさせてし
まいます。

理由は下記のサイトに記載されています。
[UI フリーズの発生理由]という箇所を要参照
https://blogs.msdn.microsoft.com/nakama/2009/03/30/part-1-windows/
UI がフリーズしないアプリを作るためには、時間のかかる処理(具体的には 0
.1sec 以上かかる処理)を別スレッドに切り離して実行しなければならない。

よろしくお願いいたします。

タイトルRe^2: 払戻データの速報成績(払戻金確定)につきまして
記事No6353   [関連記事]
投稿日: 2019/01/21(Mon) 22:58
投稿者ターちゃん
ご回答ありがとうございます!

はい、蓄積系データを取得しております。

> 蓄積系の払戻データは基本的にはデータ区分=2の成績(月曜)
> となります。



> 払戻データのデータ区分=1(速報成績(払戻金確定))は
> 速報系の「速報レース情報(成績確定後)」と
> 「速報レース情報(出走馬名表〜)」にて取得できます。

ですが、そのような「蓄積系データで取得可能なデータ区分はどれ、
速報系データ区分で取得可能なデータ区分はどれ」
といった詳細仕様はどのドキュメントを確認すればよろしかったでしょうか?
他にも同様のデータがある度に質問するのもあれですのでご教授ください。

よろしくお願いいたします。

タイトルRe: Thead, TaskにてJVLinkClass#JVRead()の実行で例外が発生
記事No6352   [関連記事]
投稿日: 2019/01/21(Mon) 09:52
投稿者JRA-VANソフトサポート
JRA-VANソフトサポート 吉岡です。
DataLab.サービスをご利用頂きまして誠にありがとうございます。

>その新しいスレッド内でJVRead()がコールされた際に
>下記のエラーが発生するようになりました。
>尚、Taskを利用しても同様のエラーが発生します。
>-------------------------
>System.Runtime.InteropServices.COMException:
>'サーバーによって例外が返されました。
>(HRESULT からの例外:0x80010105 (RPC_E_SERVERFAULT))9;
>-------------------------

ご記載いただいた内容につきまして、過去に同様の問い合わせを受けており、
その際は、マルチスレッドの仕組みを利用した競馬ソフトであった為、
このようなエラーが発生した という経緯がありました。
本件の競馬ソフトにつきまして、マルチスレッドの仕組みを
利用した構造になっていないでしょうか。

>JVRead()をバックグラウンドなどで実行するために
>特殊な操作等必要でしょうか?

JV-Linkはマルチスレッドでの
利用を考慮した構造にはなっておりません。

以上、よろしくお願い致します。

タイトルRe: 払戻データの速報成績(払戻金確定)につきまして
記事No6351   [関連記事]
投稿日: 2019/01/18(Fri) 20:09
投稿者JRA-VANソフトサポート
JRA-VANソフトサポート 吉岡です。
DataLab.サービスをご利用頂きまして誠にありがとうございます。

>私の想定では2019/01/12(土), 2019/01/13(日)のレースの払戻データが速
報成
>績(払戻金確定)として数件は含まれていると思っていたのですが、それら
期間の
>払戻データは0件でした。

蓄積系データを取得しているように見受けられます。
蓄積データは、基本的に月曜以降に取得できるデータとなりますので、
想定のデータは取得されず、
2019/01/05(土), 2019/01/06(日)のデータが取得されたかと思います。
蓄積系の払戻データは基本的にはデータ区分=2の成績(月曜)となります。

>払戻データのデータ区分=1(速報成績(払戻金確定))が得られるのは
>レース後どれくらいの時間又は日が経過してからでしょうか?

払戻データのデータ区分=1(速報成績(払戻金確定))は
速報系の「速報レース情報(成績確定後)」と
「速報レース情報(出走馬名表〜)」にて取得できます。
該当データはレース確定後より1週間程度、提供しておりますので、
その間は取得可能となります。

以上、よろしくお願い致します。

タイトルThead, TaskにてJVLinkClass#JVRead()の実行で例外が発生
記事No6348   [関連記事]
投稿日: 2019/01/14(Mon) 23:44
投稿者ターちゃん
こんにちは。

Visual Studio 2017 の C# で開発をしております。

ウィンドウ上の「ロード」ボタンをクリックするとJVRead()から全てのデータを読み出し
てDBに保存するよう実装しました。
ただし、読み出すデータが大量にあるとUIスレッドに戻るまでに長時間を要し
てしまいアプリが止まってしまいます。

そこでボタンがクリックされた際に JVRead() を別スレッドで実行するよう試
してみましたが、その新しいスレッド内でJVRead()がコールされた際に下記のエ
ラーが発生するようになりました。尚、Taskを利用しても同様のエラーが発生し
ます。
-------------------------
System.Runtime.InteropServices.COMException: 'サーバーによって例外
が返されました。 (HRESULT からの例外:0x80010105 (RPC_E_SERVERFAULT))
9;
-------------------------

JVRead()をバックグラウンドなどで実行するために特殊な操作等必要でしょう
か?

尚、JVInit(), JVOpen() に関してはThread, Task内で実行しても例外は発生せず正常に動作しております。

以上、よろしくお願いいたします。

タイトル払戻データの速報成績(払戻金確定)につきまして
記事No6347   [関連記事]
投稿日: 2019/01/13(Sun) 18:07
投稿者ターちゃん
こんにちは。

払戻データのデータ区分=1である速報成績(払戻金確定)が得られるタイミング
につきまして質問させてください。

2019/01/13(日)の午後 17:30 頃に以下のパラメータで JVOpenをコールしまし
た。

string dataSpec = "RACE";
string fromDate = "20190101132356"; // 2019-01-01からのデータ
取得
int option = 1;
int readCount = 0;
int downloadCount = 0;
string lastFileTimestamp;

jvLink.JVOpen(dataSpec, fromDate, option, ref readCount, ref downloadCo
unt, out lastFileTimestamp);

計48件の払戻データ(レコード種別ID=HR)が取得できたのですが、その中にデー
タ区分=1である速報成績(払戻金確定)のデータが1件も存在しませんでした。
全てデータ区分=2の成績(月曜)でした。

私の想定では2019/01/12(土), 2019/01/13(日)のレースの払戻データが速報成
績(払戻金確定)として数件は含まれていると思っていたのですが、それら期間の
払戻データは0件でした。

払戻データのデータ区分=1(速報成績(払戻金確定))が得られるのはレース後ど
れくらいの時間又は日が経過してからでしょうか?
月曜日にはデータ区分=2が取得できるようになると思うのですが、その前にデ
ータ区分=1のデータが取得できる期間はあるのでしょうか・・・。

以上、よろしくお願いいたします。

タイトルRe^3: Jv-LINKのインストール確認について
記事No6346   [関連記事]
投稿日: 2019/01/11(Fri) 16:40
投稿者JRA-VANソフトサポート
JRA-VANソフトサポート 吉岡です。
DataLab.サービスをご利用頂きまして誠にありがとうございます。

こちらで確認したところ、
レジストリキーが作成されていることを確認できました。

今一度、以下にレジストリキーが存在するか
ご確認いただけますでしょうか。

■ 32bit
HKEY_LOCAL_MACHINE\SOFTWARE\JRA-VAN Data Lab.

■ 64bit
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JRA-VAN Data Lab.


以上、よろしくお願い致します。

タイトルRe^3: データ蓄積アプリを開発について
記事No6345   [関連記事]
投稿日: 2019/01/11(Fri) 15:20
投稿者JRA-VANソフトサポート
JRA-VANソフトサポート 吉岡です。
DataLab.サービスをご利用頂きまして誠にありがとうございます。

>Option ですが、セットアップデータ取得の際は 3、4 の
>違いはなんでしょうか?

Option 3 は セットアップデータの取得、
Option 4 は ダイアログ無しのセットアップデータの取得となります。
(初回のみダイアログを表示します。)

>ご教授いただいた lastfiletimestamp からすぐに通常データ 1を
>取得するとretrunCode が -1 になりますが、
>これは取得データがなかったという認識でよろしいでしょうか?

認識通りでございます。
指定されたパラメータに合致する新しいデータが
サーバーに存在しないときに
returnCode が -1 となります。

以上、よろしくお願い致します。

タイトルRe^2: Jv-LINKのインストール確認について
記事No6344   [関連記事]
投稿日: 2019/01/10(Thu) 00:48
投稿者ぱっつん
これに関連して、もう一つ質問させてください。
DVDトライアルキットのJV-LINKをインストールした際に
レジストリキーの作成はされますか?

されてないないようにおもうのですが・・・

タイトルRe^2: データ蓄積アプリを開発について
記事No6343   [関連記事]
投稿日: 2019/01/09(Wed) 19:07
投稿者hisa
ご連絡ありがとうございます。

追加の質問です。
Option ですが、セットアップデータ取得の際は 3、4 の違いはなんでしょうか


ご教授いただいた lastfiletimestamp からすぐに通常データ 1 を取得すると
retrunCode が -1 になりますが、これは取得データがなかったという認識でよ
ろしいでしょうか?


以上、よろしくお願いいたします。

> JRA-VANソフトサポート 吉本です。
> DataLab.サービスをご利用頂きまして誠にありがとうございます。
>
> >例として馬主を蓄積するとして、サンプルを元に開発した場合、
> >まず、JVOpen からセットアップデータを次の条件で取得。
> >DataSpec:DIFF
> >FromTime:20070101000000
> >Option:2
> >
> >上記取得日時(たとえば、20181227133000)をアプリが保持。
> >そこまでの馬主は蓄積したものとする。
> >
> >一週間後、JVOpen から通常データ(差分)を次の条件で取得。
> >DataSpec:DIFF
> >FromTime:20181227133000
> >Option:0
> >
> >このようにすることで常に差分のみ取得し、最新のデータを
> >蓄積するアプリになるはず。
> >という手順で正しいでしょうか?
>
> Optionの設定ですが、セットアップデータ取得の際は 3、
> または、4、通常データの際は、1 の指定
> をお願いいたします。
>
> その他につきましては、ご記載頂いた手順で問題ございません。
>
> >その際、すでに蓄積したデータに修正があった場合と、
> >追加があった場合の判別はできるのでしょうか?
> >データ検証ツールを見ると(差分)と(修正)が
> >あるように思えます。
> >仕様書を見るとデータ作成日時しかない?
>
> データの修正、または、追加の判別につきましては、
> 蓄積済みか否か、蓄積済みの場合その作成日時より新しいか等の
> 条件より判別いただければと存じます。
>
> >また、JRA-VANデータ更新タイミング
> >(http://next5.jra-van.jp/common/data.html)
> >と同時に最新データを取得してしまった場合、
> >差分は正しく取得できるのでしょうか?
>
> JVOpen を呼び出す場合に 前回呼び出し時の lastfiletimestamp を
> fromtime に指定頂ければ、必ず前回までに取得したデータの次から
> 取得されますので、上記の場合も正しく取得することができます。
>
> JVOpen の詳細な仕様につきましては、以下仕様書をご参照ください。
> http://jra-van.jp/dlb/sdv/sdk.html
> ・JV-Linkインターフェース仕様書
>
> また、蓄積系データの取得方法については、
> 以下仕様書もご参照いただければと存じます。
> http://jra-van.jp/dlb/sdv/sdk.html
> ・JRA-VAN Data Lab.開発ガイド
>
> 以上、よろしくお願い致します。

ウィンドウを閉じる