問題タブ [oracle-ords]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1074 参照

cache-control - Oracle ORDSによるキャッシュ制御

私の DB は、午後 1 時から午後 2 時の間にのみ新しいデータを取得します。ユーザーは何度も同じものを見たり、行ったり来たりします。キャッシングを使用してネットワークの負荷を減らしたいと考えています。私の応答タイプは次のとおりです。

複数のネストされた CURSORS を持つ単一行の SYS_REFCURSOR 応答。

サーバー時間に基づいて異なるキャッシュ制御を設定したい:

  • 午前 9 時 30 分のリクエスト - キャッシュ 3.5 時間
  • 午後 1 時 30 分にリクエスト - キャッシュ 0 分
  • 午後 3 時 30 分にリクエスト - 21.5 時間キャッシュ

問題は、HTTP GET を返す ORDS エンドポイントに対してキャッシュを設定する方法がまったくわからないことです。無関係のPL/SQLサービスで正常に動作するものがあります

定義済みパラメータを使用:

しかし、これは GET の場合には機能しません。理由は次のとおりです。

  1. HTTP GET は PL/SQL ではサポートされていません
  2. ORDS PL/SQL出力パラメータとしてのSYS_REFCURSORはサポートされていません

私が見つけた唯一のオプションは、ORDS ではなく、Tomcat での静的キャッシュ設定でした。

しかし、それは多くの理由から望ましくありません:

  1. ORDS の下のすべてのサービスに適用されますが、他のほとんどのエンドポイントではキャッシングはお勧めできません。これ以上正確にフィルタリングすることはできませんでした.Tomcatの観点からは、ORDSはモノリスであり、1つのキャッシュ制御設定を取得しているようです.
  2. 固定値です。