You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+16-6Lines changed: 16 additions & 6 deletions
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ The connector is supplied as source code which you can easily build into a JAR f
8
8
To build the connector, you must have the following installed:
9
9
*[git](https://git-scm.com/)
10
10
*[Maven](https://maven.apache.org)
11
-
* Java 7 or later
11
+
* Java 8 or later
12
12
13
13
Clone the repository with the following command:
14
14
```shell
@@ -25,15 +25,15 @@ Build the connector using Maven:
25
25
mvn clean package
26
26
```
27
27
28
-
Once built, the output is a single JAR called `target/kafka-connect-mq-source-0.6-SNAPSHOT-jar-with-dependencies.jar` which contains all of the required dependencies.
28
+
Once built, the output is a single JAR called `target/kafka-connect-mq-source-1.0-SNAPSHOT-jar-with-dependencies.jar` which contains all of the required dependencies.
29
29
30
30
31
31
## Running the connector
32
32
To run the connector, you must have:
33
33
* The JAR from building the connector
34
34
* A properties file containing the configuration for the connector
35
-
* Apache Kafka
36
-
* IBM MQ v7.5 or later
35
+
* Apache Kafka, either standalone or included as part of an offering such as IBM Event Streams
36
+
* IBM MQ v8 or later, or the IBM MQ on Cloud service
37
37
38
38
The connector can be run in a Kafka Connect worker in either standalone (single process) or distributed mode. It's a good idea to start in standalone mode.
39
39
@@ -139,6 +139,14 @@ You will need to put the public part of the client's certificate in the queue ma
139
139
For troubleshooting, or to better understand the handshake performed by the IBM MQ Java client application in combination with your specific JSSE provider, you can enable debugging by setting `javax.net.debug=ssl` in the JVM environment.
140
140
141
141
142
+
## Performance and syncpoint limit
143
+
The connector uses a transacted JMS session to receive messages from MQ in syncpoint and periodically commits the in-flight transaction. This has the effect of batching messages together for improved efficiency. However, the frequency of committing transactions is controlled by the Kafka Connect framework rather than the connector. The connector is only able to receive up to the queue manager's maximum uncommitted message limit (typically 10000 messages) before committing.
144
+
145
+
By default, Kafka Connect only commits every 60 seconds (10 seconds for the standalone worker), meaning that each task is limited to a rate of about 166 messages per second. You can increase the frequency of committing by using the `offset.flush.interval.ms` configuration in the worker configuration file. For example, if you set `offset.flush.interval.ms=5000`, the connector commits every 5 seconds increasing the maximum rate per task to about 2000 messages per second.
146
+
147
+
If messages are being received faster than they can be committed, the connector prints a message `Uncommitted message limit reached` and sleeps for a short delay. You should use this as an indication to set the `offset.flush.interval.ms` to a lower value, or increase the number of tasks.
148
+
149
+
142
150
## Configuration
143
151
The configuration options for the MQ Source Connector are as follows:
144
152
@@ -160,12 +168,14 @@ The configuration options for the MQ Source Connector are as follows:
160
168
161
169
## Future enhancements
162
170
The connector is intentionally basic. The idea is to enhance it over time with additional features to make it more capable. Some possible future enhancements are:
163
-
* Configurable schema for MQ messages
164
-
* Simplification of handling message formats
165
171
* JMX metrics
166
172
* Separate TLS configuration for the connector so that keystore location and so on can be specified as configurations
167
173
168
174
175
+
## Support
176
+
A commercially supported version of this connector is available for customers with a support entitlement for [IBM Event Streams](https://developer.ibm.com/messaging/event-streams/).
177
+
178
+
169
179
## Issues and contributions
170
180
For issues relating specifically to this connector, please use the [GitHub issue tracker](https://github.com/ibm-messaging/kafka-connect-mq-source/issues). If you do submit a Pull Request related to this connector, please indicate in the Pull Request that you accept and agree to be bound by the terms of the [IBM Contributor License Agreement](CLA.md).
0 commit comments