ユーザー・エクジットは、 Kafka 用のCDCレプリケーション・エンジンにKCOPプロパティを提供します。 これらのプロパティは、実行時にCDCに渡されるカスタムJavaクラスを通じて指定できます。
このタスクについて
これらのプロパティは、設定ファイルとして指定するか、プログラムから設定することができます。 Kafka 用のCDC Replication Engineでは、サブスクリプションの設定でKCOPを使用するように構成する場合、KCOPプロパティが必要です。
これらのプロパティをJavaクラスを通じて提供することで、柔軟性を高め、機密情報を安全に管理・暗号化できるようにします。
プロパティのユーザー・エグジットは、 PropertiesExitIF インターフェースを実装する必要があります。 APIリファレンスは、CDC Replicationのインストールディレクトリ内にJavadoc形式で用意されています。 APIリファレンスを表示するには、ファイル /docs/api/index.html に移動し、ブラウザでJavadocドキュメントを開いてください。 KcopPropertiesExitSample の実装は、KCOPプロパティファイルで定義されているのと同じ設定値を返す必要があります。 KCOPプロパティの出口を有効にすると、 Kafka 用CDCレプリケーション・エンジンは、指定されたクラスから返される値を使用します。
手順
- IBM SDK、Java Technology Edition、バージョン 17 を使用して、ディレクトリ CDC_Kafka_installation_directory/samples 内の 1 つ以上の KcopPropertiesExitSample.java ファイルを修正し、コンパイルします。
$ cd CDC_Kafka_installation_directory/samples
$ javac -classpath "CDC_Kafka_installation_directory/lib/*"
CDC_Kafka_installation_directory/samples/KcopPropertiesExitSample.java
- 次のコマンドを使用して、コンパイルされたクラスを移動してください:
$ mkdir CDC_Kafka_installation_directory/lib/com/ibm/cdc/kafka
$ mv CDC_Kafka_installation_directory/samples/*.class CDC_Kafka_installation_directory/lib/com/ibm/cdc/kafka
また、コンパイルされたクラスをJARファイルにパッケージ化することもできます。 Kafka 用のCDC Replication Engineをコンテナ内で実行している場合は、ファイル .class またはJARを に移動してください CDC_Kafka_instance_directory/instance/<instance name>/lib。 依存関係もすべてコピーしてください。 CDCユーザーがこれらのライブラリの所有者になるように所有権を変更してください。
- Kafka データストアのCDCレプリケーションエンジンを停止します。
- カスタムクラスパスを通じて、そのクラスをCDCが利用できるようにします。
- 別のKCOPクラスローダーを使用しており、 「KCOP用のカスタムクラスパスの指定 」の手順に従って instance/<instance name>/conf/user-classloader.cp すでに設定済みの場合は、クラスファイルへのパスを に user-classloader.cp追加してください。 このパスはKCOP関連のライブラリ専用に使用され、システムのクラスローダーからは隔離されたままです。
- 独立したKCOPクラスローダーを使用していない場合は、クラスファイルへのパスをインスタンスレベルの instance/<instance name>/conf/user.cp. に追加してください。
- クラスがJARファイルとしてパッケージ化されている場合は、そのJARファイルへの絶対パスを指定してください(例: /path/to/file.jar)。このファイルは、独立したKCOPクラスローダーを使用しているかどうかに応じて、 user.cpuser-classloader.cp またはの末尾に追加してください。
- Kafka データストア用のCDCレプリケーションエンジンを起動します。 Kafka 用のCDC Replication Engineは、クラスパスの変更を適用します。
- KCOPプロパティの終了を使用したいアクティブなサブスクリプションのレプリケーションを終了します。
- 管理コンソールにあるプロパティを設定します。
- ファイル kcop.properties を作成し、サブスクリプションのユーザー・エクジット・ウィンドウから次のように参照します
-file:<kcop properties file path>
この kcop.properties ファイルには、以下のエントリのみを含める必要があります: properties.exit.class=com.ibm.cdc.kafka.KcopPropertiesExitSample
実装 KcopPropertiesExitSample では、ファイル kcop.properties に直接定義されているのと同じ設定値を返す必要があります。 を指定すると properties.exit.class、CDCはexitクラスが返す値を使用します。 ファイル kcop.properties に追加のプロパティが含まれている場合、CDCはエラーを返します。
- レプリケーションを開始して、KCOPプロパティの終了処理を使用できるようにします。
Kafka のコンシューマー・ユーザー・エグジットでの自動パーティション機能の使用
自動パーティショニングでは、KCOPプロセッサは、レコードをクラスタに送信する前に、 Kafka トピックに対してパーティション数を問い合わせる必要があります。 この操作を実行するには、クエリで Kafka のコンシューマープロパティが利用可能である必要があります。
コンシューマプロパティにJavaユーザーエグジットを使用する場合、 Kafka コンシューマクラスを指定するとともに、
PART ITION_AUT O=trueを設定する必要があります。 したがって、KCOPのプロパティ・ユーザー・エグジットには、以下のプロパティを含める必要があります:
KAFKACONSUMER_PROPERTIES_CLASS=com.ibm.cdc.kafka.KafkaConsumerPropertiesExitSample
PARTITION_AUTO=true