JV-Link で同一 race_id の HR/H1/H6 は取得できるのに RA/SE が取得できない場合の JVOpen 条件について

お世話になっております。JRA-VAN Data Lab. SDK (4.9.0.x) を使って個人利用の研究目的で競馬データを取得しています。

特定 5 レースの HR/H1/H6 は取得できるが、同じ race_id の RA/SE が取得できない状況が再現しており、適切な JVOpen 条件をご教示いただきたく投稿します。

1. 環境

項目
OS Windows
SDK JRA-VAN Data Lab. SDK 4.9.0.x
言語 / 接続 Python 3.12 + pywin32 (win32com.client.Dispatch("JVDTLab.JVLink"))、dynamic dispatch、preallocated buffer (110000 bytes)
用途 個人研究 (常時収集ではなく、特定 race の検証のみ)

2. 取得対象 (5 レース)

race_id は内部表現で 年-場コード-回-日-R の形式です。

race_id 場 (jyo_cd) R 実開催日 make_date
2026-04-01-03-01 2026 04 (新潟) 01 03 01 2026-05-09 20260511
2026-04-01-03-02 2026 04 01 03 02
2026-04-01-03-03 2026 04 01 03 03
2026-04-01-03-04 2026 04 01 03 04
2026-04-01-03-05 2026 04 01 03 05

つまり、2026 年・新潟・第 1 回・3 日目・1R〜5R です。

取得したい record は以下です。

  • RA: RACE 情報、固定長 1272 bytes
  • SE: 馬毎レース情報、固定長 555 bytes、1 race あたり馬数分

3. 取得できている record (HR / H1 / H6)

同じ 5 レースの HR (払戻)、H1 (単複枠連オッズ)、H6 (3連単オッズ) は次の条件で取得できています。

項目
data_spec RACE
option 1 (通常データ)
fromtime 20260511013551 (実開催日 +2 日、make_date 当日付近)
JVOpen rc / read 0 / 29
保存できた件数 HR=5, H1=5, H6=5 (target 5 レース完全一致)
同 run の RA / SE 0 / 0 (record_specs_seen にも出現せず)

HR/H1/H6 は race 終了後の差分に含まれていました。

4. 取得できない record (RA / SE) ─ 試行結果

同じ data_spec=RACE で option / fromtime を変えて何度か試しましたが、target 5 レース × {RA, SE} = 10 件は一度も取得できていません。

# option fromtime jvopen read records read stop_reason RA seen SE seen target RA/SE hit
A 1 20260501000000 未記録 (上限) max_total_reads 288 4,054 0 / 10
B 1 20260415000000 131 16,204 eof 432 6,063 0 / 10
C 3 20260501000000 81 10,614 eof 288 4,054 0 / 10
D 3 20260415000000 96 19,913 max_total_reads 620 7,773 0 / 10
E 3 20260415000000 96 22,761 eof 692 9,382 0 / 10

特に行 E では、読み上限を緩めた状態で stream を stop_reason=eof まで読みきりましたが、target の RA/SE はゼロでした。

RA 自体は 692 件、SE は 9,382 件 stream 内に存在しているのに、target 5 レース分は含まれていません。

参考に、同じ run の record_specs_seen は以下です。

JG=8,356 / SE=9,382 / HR=480 / H1=480 / H6=480 / O1〜O6=各 480 / RA=692 / WF=11

つまり、JVOpen が返した 96 ファイルを 22,761 records 読了しています。

5. 補足

文字コード / parse 側の問題ではないと考えています。

同一 stream 内に RA/SE record 自体は多数出現しており、文字コード変換・固定長検証では失敗していません。

仕様書 PDF (4.9.0.1) の data_spec / option / fromtime 周辺は読みましたが、option=3 setup における「対象範囲」と fromtime 基準の組合せの解釈で詰まっています。

6. 質問

恐れ入りますが、以下についてご教示いただけますと幸いです。

  1. 同一 race_id の HR/H1/H6 は取得できるのに、RA/SE が取得できない、ということは仕様上あり得るでしょうか。

  2. RA/SE と HR/H1/H6 で、publish タイミング / 保持期間 / fromtime 判定基準が異なるなどの違いがありますか。

  3. option=1option=3fromtime は、各 record のどの時刻を基準として判定されるのでしょうか。
    record 内の発生時刻 / make_date / 配信ファイルの作成時刻 / その他、どれに該当しますでしょうか。

  4. option=3 (セットアップデータ) は、fromtime 以降に該当する全データを再配信する、という理解で正しいでしょうか。

  5. 一度配信された RA/SE は、後から option=3 setup でも再取得できない場合があるのでしょうか。
    キャッシュ・保持期間・サーバ側の配信履歴管理などの観点でご教示いただけますと幸いです。

  6. data_spec=RACE 以外に、RA/SE 取得に適した data_spec / option の組合せがあれば教えてください。
    例えば RA/SE に特化した data_spec の有無を知りたいです。

  7. 今回の対象レース、つまり 2026 年・新潟・第 1 回・3 日目・1R〜5R、make_date=20260511 の RA/SE を取得するには、どの JVOpen 条件 (data_spec / option / fromtime) を使うべきでしょうか。

ご多忙のところ恐れ入りますが、ご教示いただけますと大変助かります。
何卒よろしくお願いいたします。

プログラム自体のバグか、データ側の問題かを切り分けるために、 「データ検証ツール」の使用を推奨します。

合わせてサンプルソフトの実行もわせて推奨いたします公式サイトで配布されているサンプルプロジェクトをそのまま動かし、同様のエラーが出るか比較することで、自作コードのロジック不備を特定できます。

ここまで切り分けされていて、特定のレースのRA/SEだけ取得できないというのはちょっと考えにくいですね

公式が推奨しているDataLab.検証ツールを使って、私の方でも検証してみましたが、
DataSpec:RACE
FromTime:20260511013551
ToTime:(空欄)
Option:通常(1)
で、5月9日の新潟競馬1Rから5Rまで取得できました。

公式回答ではないので誤りがあるかもしれませんが、質問事項については
1.逆はあっても、「HR/H1/H6 は取得できるのに、RA/SE が取得できない」ということは無さそうです。(少なくとも今年のデータにはありませんでした)

2.ファイル名の末尾がpublishタイミングだと思ってます。なので、RA、SE、HR、H1、H6それぞれで 多少のラグはありそうです。

3.FromTimeはレコードの時間を基準にしているのではなく、jvdファイルのファイル名と比較しているだけだと思います。今回改めて調べてみると、option=1(通常データ)のときはpublishタイミングと比較していて、option=3(セットアップ)のときは何月何日ぶん(あるいは何月ぶん)の収録データなのかと比較しているようです。

4.5.その理解でいいと思います。1点だけ注意すべきこととしては、先月以前のデータはRecordSpecごとに1ヶ月分を1ファイルにまとめて配信しているので、「開催日毎のファイルに含まれていたレコードが、翌月になるとファイル提供されなくなって、1ヶ月分まとめたファイル内のレコードとして配信されている」というのはありえます

6.RA/SE に特化した data_specはないです。JV-Data仕様書の「JRA-VAN Data Lab. JVData データ種別一覧」を見てください。速報系にRA/SE/HRを取得するDataSpecがありますが、これは提供期間が1週間で過去のデータを取得するものではないので使えません。

7.例示いただいている条件で取得できているので、組み合わせの問題ではないと思います。

「いいね!」 1