aws-sdk-java-v2
aws-sdk-java-v2 copied to clipboard
Connector completed: success = 'false', message = 'Stopping connector after error in the application's handler method: Unable to marshall request to JSON: baseUri must not be null.', error = '{}': software.amazon.awssdk.core.exception.SdkClientException: Unable to marshall request to JSON: baseUri must not be null.(short issue description)
Describe the bug
while streaming data from mysql server to kinesis data stream through debezium server showing some error. mysql server and debezium server are in two different ec2 instances.which are in same region and kinesis also in same region and same account...
Expected Behavior
debezium server should stream data from mysql server to kinesis data stream.
Current Behavior
INFO [io.deb.ser.ConnectorLifecycle] (pool-7-thread-1) Connector completed: success = 'false', message = 'Stopping connector after error in the application's handler method: Unable to marshall request to JSON: baseUri must not be null.', error = '{}': software.amazon.awssdk.core.exception.SdkClientException: Unable to marshall request to JSON: baseUri must not be null.
at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:98)
at software.amazon.awssdk.services.kinesis.transform.PutRecordRequestMarshaller.marshall(PutRecordRequestMarshaller.java:52)
at software.amazon.awssdk.services.kinesis.transform.PutRecordRequestMarshaller.marshall(PutRecordRequestMarshaller.java:31)
at software.amazon.awssdk.core.internal.handler.BaseClientHandler.lambda$finalizeSdkHttpFullRequest$0(BaseClientHandler.java:79)
at software.amazon.awssdk.core.internal.util.MetricUtils.measureDuration(MetricUtils.java:51)
at software.amazon.awssdk.core.internal.handler.BaseClientHandler.finalizeSdkHttpFullRequest(BaseClientHandler.java:78)
at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.doExecute(BaseSyncClientHandler.java:145)
at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.lambda$execute$1(BaseSyncClientHandler.java:114)
at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.measureApiCallSuccess(BaseSyncClientHandler.java:169)
at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.execute(BaseSyncClientHandler.java:95)
at software.amazon.awssdk.core.client.handler.SdkSyncClientHandler.execute(SdkSyncClientHandler.java:45)
at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.execute(AwsSyncClientHandler.java:55)
at software.amazon.awssdk.services.kinesis.DefaultKinesisClient.putRecord(DefaultKinesisClient.java:1562)
at io.debezium.server.kinesis.KinesisChangeConsumer.handleBatch(KinesisChangeConsumer.java:108)
at io.debezium.embedded.ConvertingEngineBuilder.lambda$notifying$2(ConvertingEngineBuilder.java:83)
at io.debezium.embedded.EmbeddedEngine.run(EmbeddedEngine.java:821)
at io.debezium.embedded.ConvertingEngineBuilder$2.run(ConvertingEngineBuilder.java:188)
at io.debezium.server.DebeziumServer.lambda$start$1(DebeziumServer.java:145)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.NullPointerException: baseUri must not be null.
at software.amazon.awssdk.utils.Validate.paramNotNull(Validate.java:135)
at software.amazon.awssdk.utils.http.SdkHttpUtils.appendUri(SdkHttpUtils.java:261)
at software.amazon.awssdk.http.SdkHttpFullRequest$Builder.uri(SdkHttpFullRequest.java:71)
at software.amazon.awssdk.protocols.core.ProtocolUtils.createSdkHttpRequest(ProtocolUtils.java:44)
at software.amazon.awssdk.protocols.json.internal.marshall.JsonProtocolMarshaller.fillBasicRequestParams(JsonProtocolMarshaller.java:148)
at software.amazon.awssdk.protocols.json.internal.marshall.JsonProtocolMarshaller.
2022-08-08 13:32:03,054 INFO [io.deb.ser.DebeziumServer] (main) Received request to stop the engine 2022-08-08 13:32:03,055 INFO [io.deb.emb.EmbeddedEngine] (main) Stopping the embedded engine 2022-08-08 13:32:03,088 INFO [io.quarkus] (main) debezium-server-dist stopped in 0.048s
Reproduction Steps
config file which is used in debezium server for streaming data from mysql server to kinesis data stream.. debezium.sink.type=kinesis debezium.sink.kinesis.region=us-east-2 debezium.sink.kinesis.endpoint=arn:aws:kinesis:us-east-2:561761662:stream/deb_kinesis debezium.source.connector.class=io.debezium.connector.mysql.MySqlConnector debezium.source.offset.storage.file.filename=/tmp/offsets.dat debezium.source.offset.flush.interval.ms=0 debezium.source.database.hostname=3.19.20.64 debezium.source.database.port=3306 debezium.source.database.user=root debezium.source.database.password=password debezium.source.database.dbname=incdb debezium.source.database.server.id=1 debezium.source.database.server.name=kafka_inc_sql_server debezium.source.include.query=true debezium.source.snapshot.mode=when_needed debezium.sink.pravega.scope=empty debezium.source.table.include.list=incdb.Orders debezium.source.database.history.file.filename=/tmp/FileDatabaseHistory.dat debezium.source.database.history=io.debezium.relational.history.FileDatabaseHistory
Possible Solution
No response
Additional Information/Context
No response
AWS Java SDK version used
aws-cli/1.25.44 Python/3.10.4 Linux/5.15.0-1015-aws botocore/1.27.44
JDK version used
openjdk 11.0.15 2022-04-19 OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1) OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1, mixed mode, sharing)
Operating System and version
Ubuntu 22.04 LTS (GNU/Linux 5.15.0-1015-aws x86_64)
Hello @suryaares ,
Thank you very much for your message. The error you are encountering is thrown when the service could not be contacted for a response, or when the client is unable to parse the response from service. I would need more information on your usage of the SDK to help with this issue. Could you please provide your full code sample?
Best,
Yasmine
I am not using any code here. Mysql server on separate instance and debezium server on another one instance..just using config file, i am trying to connect these source and kinesis as destination..Kinesis also in the same aws acc where the debezium server instance in running..
Here you can see that config file..
debezium.sink.type=kinesis debezium.sink.kinesis.region=us-east-2 debezium.sink.kinesis.endpoint=arn:aws:kinesis:us-east-2:561761662:stream/deb_kinesis debezium.source.connector.class=io.debezium.connector.mysql.MySqlConnector debezium.source.offset.storage.file.filename=/tmp/offsets.dat debezium.source.offset.flush.interval.ms=0 debezium.source.database.hostname=3.19.20.64 debezium.source.database.port=3306 debezium.source.database.user=root debezium.source.database.password=password debezium.source.database.dbname=incdb debezium.source.database.server.id=1 debezium.source.database.server.name=kafka_inc_sql_server debezium.source.include.query=true debezium.source.snapshot.mode=when_needed debezium.sink.pravega.scope=empty debezium.source.table.include.list=incdb.Orders debezium.source.database.history.file.filename=/tmp/FileDatabaseHistory.dat debezium.source.database.history=io.debezium.relational.history.FileDatabaseHistory
Hello @suryaares ,
Thank you very much for your reply. Based on the information you have provided, you would need to reach out to the Debezium support team for guidance or troubleshooting with this issue.
Best,
Yasmine
⚠️COMMENT VISIBILITY WARNING⚠️
Comments on closed issues are hard for our team to see. If you need more assistance, please open a new issue that references this one. If you wish to keep having a conversation with other community members under this issue feel free to do so.
I will leave response-requested status in case you need any guidance on the AWS Java SDK but it seems that you are encountering issue with the use of debezium server which is a third party service. They do offer guidance documentation on streaming MySQL Data to Amazon Kinesis that could be useful in your case.
Best,
Yasmine
I will leave response-requested status in case you need any guidance on the AWS Java SDK but it seems that you are encountering issue with the use of debezium server which is a third party service. They do offer guidance documentation on streaming MySQL Data to Amazon Kinesis that could be useful in your case.
Best,
Yasmine
yeah thank you so much....
⚠️COMMENT VISIBILITY WARNING⚠️
Comments on closed issues are hard for our team to see. If you need more assistance, please open a new issue that references this one. If you wish to keep having a conversation with other community members under this issue feel free to do so.