incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rahul Gupta <rgu...@dekaresearch.com>
Subject RE: InvalidRequestException(why:Not enough bytes to read value of component 0)
Date Thu, 18 Jul 2013 13:38:05 GMT
Thank You. Your solution worked...!!

Changed below line:
HCounterColumn<String> hColumn_ts = HFactory.createCounterColumn(ts.toString(), value,
StringSerializer.get());
To this:

HCounterColumn<Composite> hColumn_tsCG = HFactory.createCounterColumn(tsCG, value, CompositeSerializer.get());

Rahul Gupta
This e-mail and the information, including any attachments, it contains are intended to be
a confidential communication only to the person or entity to whom it is addressed and may
contain information that is privileged. If the reader of this message is not the intended
recipient, you are hereby notified that any dissemination, distribution or copying of this
communication is strictly prohibited. If you have received this communication in error, please
immediately notify the sender and destroy the original message.

From: Vivek Mishra [mailto:mishra.vivs@gmail.com]
Sent: Thursday, July 18, 2013 4:23 AM
To: user@cassandra.apache.org
Subject: Re: InvalidRequestException(why:Not enough bytes to read value of component 0)

+1 for Sylvain's answer.

This normally happens, if validation class for column value(s) differs.

-Vivek

On Thu, Jul 18, 2013 at 12:08 PM, Sylvain Lebresne <sylvain@datastax.com<mailto:sylvain@datastax.com>>
wrote:
I don't know Hector very much really, but I highly suspect that "ts.toString()" is wrong,
since composite column names are not strings. So again, not a Hector expert, but I can't really
see how converting the composite into string could work.

--
Sylvain

On Wed, Jul 17, 2013 at 11:14 PM, Rahul Gupta <rgupta@dekaresearch.com<mailto:rgupta@dekaresearch.com>>
wrote:
Getting error while trying to persist data in a Column Family having a CompositeType comparator

Using Cassandra ver 1.1.9.7
Hector Core ver 1.1.5 API ( which uses Thrift 1.1.10)

Created Column Family using cassandra-cli:

create column family event_counts
with comparator = 'CompositeType(DateType,UTF8Type)'
and key_validation_class = 'UUIDType'
and default_validation_class = 'CounterColumnType';

Persistence Code(sumLoad.java):

import me.prettyprint.cassandra.serializers.StringSerializer;
import me.prettyprint.cassandra.serializers.DateSerializer;
import me.prettyprint.cassandra.service.CassandraHostConfigurator;
import me.prettyprint.hector.api.Cluster;
import me.prettyprint.hector.api.Keyspace;
import me.prettyprint.hector.api.beans.Composite;
import me.prettyprint.hector.api.beans.HCounterColumn;
import me.prettyprint.hector.api.factory.HFactory;
import me.prettyprint.hector.api.mutation.Mutator;
import java.sql.Date;
import java.util.logging.Level;

            public class sumLoad {

                final static Cluster cluster = HFactory.getOrCreateCluster("Dev", new CassandraHostConfigurator("100.10.0.6:9160<http://100.10.0.6:9160>"));
                final static Keyspace keyspace = HFactory.createKeyspace("Events", cluster);
                final static StringSerializer ss = StringSerializer.get();

                private boolean storeCounts(String vKey, String counterCF, Date dateStr, String
vStr, long value)
                {
                            try
                            {
                       Mutator<String> m1 = HFactory.createMutator(keyspace, StringSerializer.get());

                       Composite ts = new Composite();
                       ts.addComponent(dateStr, DateSerializer.get());
                       ts.addComponent(vStr, StringSerializer.get());
                       HCounterColumn<String> hColumn_ts = HFactory.createCounterColumn(ts.toString(),
value, StringSerializer.get());

                       m1.insertCounter(vKey, counterCF, hColumn_ts);
                       m1.execute();
                       return true;
                            }
                            catch(Exception ex)
                            {
                                        LOGGER.log(Level.WARNING, "Unable to store record",
ex);
                            }
                            return false;
                }

                public static void main(String[] args) {

                        Date vDate = new Date(0);
                        sumLoad SumLoad = new sumLoad();
SumLoad.storeCounts("b9874e3e-4a0e-4e60-ae23-c3f1e575af93", "event_counts", vDate, "StoreThisString",
673);
                }

            }

Error:

[main] INFO me.prettyprint.cassandra.service.JmxMonitor - Registering JMX me.prettyprint.cassandra.service_Dev:ServiceType=hector,MonitorType=hector
Unable to store record
me.prettyprint.hector.api.exceptions.HInvalidRequestException: InvalidRequestException(why:Not
enough bytes to read value of component 0)


Rahul Gupta
This e-mail and the information, including any attachments, it contains are intended to be
a confidential communication only to the person or entity to whom it is addressed and may
contain information that is privileged. If the reader of this message is not the intended
recipient, you are hereby notified that any dissemination, distribution or copying of this
communication is strictly prohibited. If you have received this communication in error, please
immediately notify the sender and destroy the original message.


________________________________
This e-mail and the information, including any attachments, it contains are intended to be
a confidential communication only to the person or entity to whom it is addressed and may
contain information that is privileged. If the reader of this message is not the intended
recipient, you are hereby notified that any dissemination, distribution or copying of this
communication is strictly prohibited. If you have received this communication in error, please
immediately notify the sender and destroy the original message.

Thank you.

Please consider the environment before printing this email.




Click here<https://www.mailcontrol.com/sr/hGG!1BincabGX2PQPOmvUkWM85sEKD4+b2KsXmRgBP7Gpb4nn1VHeUpfbe+cKMM7kZAtix!zDZWiyla!1rT5xQ==>
to report this email as spam.

________________________________
This e-mail and the information, including any attachments, it contains are intended to be
a confidential communication only to the person or entity to whom it is addressed and may
contain information that is privileged. If the reader of this message is not the intended
recipient, you are hereby notified that any dissemination, distribution or copying of this
communication is strictly prohibited. If you have received this communication in error, please
immediately notify the sender and destroy the original message.

Thank you.

Please consider the environment before printing this email.

Mime
View raw message