2016-03-21 2 views
0

Я получаюAmazon Kinesis KPL SerializationException

2016-03-21 10:17:19.915081] [0x00007f539b023740] [error] [retrier.cc:59] PutRecords failed: {"__type":"SerializationException"} 

Со следующим Java StackTrace:

Caused by: com.amazonaws.services.kinesis.producer.UserRecordFailedException 
at com.amazonaws.services.kinesis.producer.KinesisProducer$MessageHandler.onPutRecordResult(KinesisProducer.java:188) 
at com.amazonaws.services.kinesis.producer.KinesisProducer$MessageHandler.access$000(KinesisProducer.java:127) 
at com.amazonaws.services.kinesis.producer.KinesisProducer$MessageHandler$1.run(KinesisProducer.java:134) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 

Что не так?

ответ

0

В нашем случае причина заключалась в том, что PartitionKey содержал символы котировки ("). Это не запрещено documentation, а скорее, вероятно, проблема «вставки строк» ​​в коде C++ в KPL. Поэтому в вызове kp.addUserRecord(streamName, partitionKey, data); убедитесь, что partitionKey не содержит символов кавычек.

+0

AFAIK, раздел ключа также не может содержать символы «-» (тире). – az3