Skip to content

Instantly share code, notes, and snippets.

@itissid
Created February 1, 2012 20:23
Show Gist options
  • Save itissid/1719092 to your computer and use it in GitHub Desktop.
Save itissid/1719092 to your computer and use it in GitHub Desktop.
package com.my.project;
import java.util.Iterator;
import org.apache.cassandra.thrift.Cassandra.Client;
import com.netflix.astyanax.AstyanaxContext;
import com.netflix.astyanax.Keyspace;
import com.netflix.astyanax.connectionpool.ConnectionPool;
import com.netflix.astyanax.connectionpool.NodeDiscoveryType;
import com.netflix.astyanax.connectionpool.OperationResult;
import com.netflix.astyanax.connectionpool.exceptions.ConnectionException;
import com.netflix.astyanax.connectionpool.impl.ConnectionPoolConfigurationImpl;
import com.netflix.astyanax.connectionpool.impl.CountingConnectionPoolMonitor;
import com.netflix.astyanax.impl.AstyanaxConfigurationImpl;
import com.netflix.astyanax.model.ColumnFamily;
import com.netflix.astyanax.model.CqlResult;
import com.netflix.astyanax.model.Row;
import com.netflix.astyanax.serializers.StringSerializer;
import com.netflix.astyanax.shallows.EmptyKeyspaceTracerFactory;
import com.netflix.astyanax.thrift.ThriftFamilyFactory;
import com.netflix.astyanax.thrift.ThriftKeyspaceImpl;
public class MyMigration {
public void doMigration(){
AstyanaxContext<Keyspace> keyspace = new AstyanaxContext.Builder()
.forCluster("Test Cluster")
.forKeyspace("XYZService")
.withAstyanaxConfiguration(new AstyanaxConfigurationImpl()
.setDiscoveryType(NodeDiscoveryType.NONE)
)
.withConnectionPoolConfiguration(new ConnectionPoolConfigurationImpl("MyConnectionPool")
.setPort(9160)
.setMaxConnsPerHost(1)
.setSeeds("localhost:9160")
)
.withConnectionPoolMonitor(new CountingConnectionPoolMonitor())
.buildKeyspace(ThriftFamilyFactory.getInstance());// EXCEPTION CAUGHT HERE...
ColumnFamily<String, String> cf= new ColumnFamily("NewCF", new StringSerializer(), new StringSerializer());
@SuppressWarnings("unchecked")
Keyspace k = new ThriftKeyspaceImpl(keyspace.getKeyspaceName(), (ConnectionPool<Client>) keyspace.getConnectionPool(), keyspace.getAstyanaxConfiguration(), EmptyKeyspaceTracerFactory.instance);
try {
OperationResult<CqlResult<UUID, UUID>> result;
ColumnFamilyQuery<UUID, UUID> cfq = k.prepareQuery(cf);
CqlQuery<UUID, UUID> cq = cfq.withCql("select * from test_table limt 10;");
result = cq.execute();
for (Iterator<Row<UUID, UUID>> iterator = result.getResult().getRows().iterator(); iterator.hasNext();) {
@SuppressWarnings("unused")
Row<UUID, UUID> type = iterator.next();
//DO SOMETHING..
}
} catch (ConnectionException e) {
e.printStackTrace();
}catch (Exception e){
e.printStackTrace();
}
}
}
========SEPARATE TEST CLASS====
package com.my.project;
import org.junit.Test;
import com.my.project.MyMigration;
public class TestMigration {
@Test
public void testMigration(){
MyMigration km = new MyMigration();
km.doMigration();
}
}
========
com.netflix.astyanax.connectionpool.exceptions.NoAvailableHostsException: NoAvailableHostsException: [host=None(0.0.0.0):0, latency=0(0), attempts=0] No hosts to borrow from
at com.netflix.astyanax.connectionpool.impl.RoundRobinExecuteWithFailover.<init>(RoundRobinExecuteWithFailover.java:30)
at com.netflix.astyanax.connectionpool.impl.RoundRobinConnectionPoolImpl.newExecuteWithFailover(RoundRobinConnectionPoolImpl.java:49)
at com.netflix.astyanax.connectionpool.impl.AbstractHostPartitionConnectionPool.executeWithFailover(AbstractHostPartitionConnectionPool.java:222)
at com.netflix.astyanax.thrift.ThriftColumnFamilyQueryImpl$5.execute(ThriftColumnFamilyQueryImpl.java:503)
at com.my.project.MyMigration.doMigration(MyMigration.java:53)
......
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment