Hi, 

I have tried using the java client for Riak 2.0 without success.  I have 
created 2 buckets types:  one has properties {allow_mult:true, datatype:map} 
and the other one {allow_mult:true, last_write_wins:true}.  Below are the two 
approaches I tried.  The first attempts to save a Map in map-device-usage, the 
second one tries to saves an object under default.  In both occasions I never 
get an error but nothing is stored in Riak.  After a few minutes of the 
application running I just stop the app.  
Both bucket-types are active.  Im using leveled as backend.  Im writing to a 
cluster of 1 node just for the sake of prototyping.  The client was built from 
branch develop.  
 
questions: 
- Am I using the client correctly?  
- Obviously something is going wrong, so where are the errors, or any logs for 
that matter? 

Any help or insight would be much appreciated. 
RiakClient riakClient() {
    RiakClient client = null;
    try {
      RiakNode node = new RiakNode.Builder()
          .withMaxConnections(riakPoolSize)
          .withMinConnections(riakInitialPoolSize)
          .withRemotePort(riakPort)
          .withRemoteAddress(riakHost)
          .build();
      RiakCluster cluster = new RiakCluster.Builder(node)
          .withExecutor(Executors.newScheduledThreadPool(5))
          .build();
      client = new RiakClient(cluster);
    } catch (UnknownHostException e) {
      LOG.error("Riak node was not created", e);
    }
    return client;
  }



———————————————————————————————————

        String deviceKey = RiakUtils.buildDeviceKey(e.getSourceId(), 
e.getCreatedAt());
        String eventKey = RiakUtils.buildEventKey(e.getType(), 
e.getCreatedAt());

        Location deviceMap = new Location(bucketName)
            .setBucketType(bucketType)
            .setKey(deviceKey);

        // im not sure if this is the way to do it //
        MapUpdate eventMap = new MapUpdate()
            .add("id", new 
RegisterUpdate(BinaryValue.create(eventKey).getValue()))
            .add("source", new 
RegisterUpdate(BinaryValue.create(e.getSource()).getValue()))
    .add("sourceId", new 
RegisterUpdate(BinaryValue.create(e.getSourceId().toString()).getValue()))
            .add("sourceTypeId", new 
RegisterUpdate(BinaryValue.create(e.getSourceTypeId().toString()).getValue()))
            .add("created_at", new 
RegisterUpdate(BinaryValue.create(e.getCreatedAt().toString()).getValue()))
            .add("recorded_at", new 
RegisterUpdate(BinaryValue.create(DateTime.now().toString()).getValue()))
            .add("data", new 
RegisterUpdate(BinaryValue.create(e.getData().toString()).getValue()));
        UpdateMap update = new UpdateMap.Builder(deviceMap, eventMap).build();

client.executeAsync(update);


———————————————————————————————————

RiakObject event = null;
        try {
          event = new RiakObject().setContentType(Constants.CTYPE_JSON)
              .setValue(BinaryValue.create(mapper.writeValueAsBytes(e)));
        } catch (JsonProcessingException jpe) {
          LOG.warn("Could not create RiakObject[content={}]", e, jpe);
        }
 Location deviceMap = new Location(bucketName)
            .setKey(deviceKey);

        // this is another way // 
        StoreValue storeValue = new StoreValue.Builder(event)
            .withLocation(deviceMap)
            .build();

        try {
          StoreValue.Response resp = client.executeAsync(storeValue).get();
          System.out.println(resp);
        } catch (InterruptedException e1) {
          e1.printStackTrace();
        }
 

Regards,
-- 
yoandy terradas
_______________________________________________
riak-users mailing list
[email protected]
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to