Example usage for com.amazonaws.services.dynamodbv2.util TableUtils waitUntilActive

List of usage examples for com.amazonaws.services.dynamodbv2.util TableUtils waitUntilActive

Introduction

In this page you can find the example usage for com.amazonaws.services.dynamodbv2.util TableUtils waitUntilActive.

Prototype

public static void waitUntilActive(final AmazonDynamoDB dynamo, final String tableName)
        throws InterruptedException, TableNeverTransitionedToStateException 

Source Link

Document

Waits up to 10 minutes for a specified DynamoDB table to move into the ACTIVE state.

Usage

From source file:AmazonDynamoDBSample_PutThrottled.java

License:Open Source License

public static void main(String[] args) throws Exception {
    init();// w  ww. ja  v  a  2  s . c om

    try {
        String tableName = "my-favorite-movies-table";

        // Create a table with a primary hash key named 'name', which holds
        // a string
        CreateTableRequest createTableRequest = new CreateTableRequest().withTableName(tableName)
                .withKeySchema(new KeySchemaElement().withAttributeName("name").withKeyType(KeyType.HASH))
                .withAttributeDefinitions(new AttributeDefinition().withAttributeName("name")
                        .withAttributeType(ScalarAttributeType.S))
                .withProvisionedThroughput(
                        new ProvisionedThroughput().withReadCapacityUnits(1L).withWriteCapacityUnits(1L));

        // Create table if it does not exist yet
        TableUtils.createTableIfNotExists(dynamoDB, createTableRequest);
        // wait for the table to move into ACTIVE state
        TableUtils.waitUntilActive(dynamoDB, tableName);

        // Describe our new table
        DescribeTableRequest describeTableRequest = new DescribeTableRequest().withTableName(tableName);
        TableDescription tableDescription = dynamoDB.describeTable(describeTableRequest).getTable();
        System.out.println("Table Description: " + tableDescription);

        // Add an item
        Map<String, AttributeValue> item = newItem("Bill & Ted's Excellent Adventure", 1989, "****", "James",
                "Sara");
        PutItemRequest putItemRequest = new PutItemRequest(tableName, item);
        PutItemResult putItemResult = dynamoDB.putItem(putItemRequest);
        System.out.println("Result: " + putItemResult);

        // Add another item
        item = newItem("Airplane", 1980, "*****", "James", "Billy Bob");
        putItemRequest = new PutItemRequest(tableName, item);
        putItemResult = dynamoDB.putItem(putItemRequest);
        System.out.println("Result: " + putItemResult);

        Thread[] thrds = new Thread[16];
        for (int i = 0; i < thrds.length; i++) {
            thrds[i] = newItemCreationThread(tableName, i);
            thrds[i].start();
        }
        for (Thread thrd : thrds) {
            thrd.join();
        }

        // Scan items for movies with a year attribute greater than 1985
        HashMap<String, Condition> scanFilter = new HashMap<String, Condition>();
        Condition condition = new Condition().withComparisonOperator(ComparisonOperator.GT.toString())
                .withAttributeValueList(new AttributeValue().withN("1985"));
        scanFilter.put("year", condition);
        ScanRequest scanRequest = new ScanRequest(tableName).withScanFilter(scanFilter);
        ScanResult scanResult = dynamoDB.scan(scanRequest);
        System.out.println("Result: " + scanResult);

    } catch (AmazonServiceException ase) {
        System.out.println("Caught an AmazonServiceException, which means your request made it "
                + "to AWS, but was rejected with an error response for some reason.");
        System.out.println("Error Message:    " + ase.getMessage());
        System.out.println("HTTP Status Code: " + ase.getStatusCode());
        System.out.println("AWS Error Code:   " + ase.getErrorCode());
        System.out.println("Error Type:       " + ase.getErrorType());
        System.out.println("Request ID:       " + ase.getRequestId());
    } catch (AmazonClientException ace) {
        System.out.println("Caught an AmazonClientException, which means the client encountered "
                + "a serious internal problem while trying to communicate with AWS, "
                + "such as not being able to access the network.");
        System.out.println("Error Message: " + ace.getMessage());
    }
}

From source file:com.envirover.spl.stream.DynamoDBOutputStream.java

License:Open Source License

@Override
public void open() throws IOException {
    AmazonDynamoDB dynamoDBClient = AmazonDynamoDBClientBuilder.defaultClient();

    if (TableUtils.createTableIfNotExists(dynamoDBClient,
            new CreateTableRequest().withTableName(tableName)
                    .withKeySchema(new KeySchemaElement(ATTR_DEVICE_ID, KeyType.HASH),
                            new KeySchemaElement(ATTR_TIME, KeyType.RANGE))
                    .withAttributeDefinitions(new AttributeDefinition(ATTR_DEVICE_ID, ScalarAttributeType.S),
                            new AttributeDefinition(ATTR_TIME, ScalarAttributeType.N))
                    .withProvisionedThroughput(new ProvisionedThroughput().withReadCapacityUnits(READ_CAPACITY)
                            .withWriteCapacityUnits(WRITE_CAPACITY)))) {

        try {//w  w w  .  ja  va  2  s  .com
            TableUtils.waitUntilActive(dynamoDBClient, tableName);
        } catch (TableNeverTransitionedToStateException e) {
            throw new IOException(e);
        } catch (InterruptedException e) {
            throw new IOException(e);
        }

        logger.info(MessageFormat.format("DynamoDB table ''{0}'' created.", tableName));
    }

    dynamoDB = new DynamoDB(dynamoDBClient);
}

From source file:com.hussi.aws.dynamoDB.AmazonDynamoDBSample.java

License:Open Source License

public static void main(String[] args) throws Exception {
    init();/*  w w  w. j a  v  a2  s  .  c o  m*/

    try {
        String tableName = "hussi_first_dynamo_table";

        // Create a table with a primary hash key named 'name', which holds a string
        CreateTableRequest createTableRequest = new CreateTableRequest().withTableName(tableName)
                .withKeySchema(new KeySchemaElement().withAttributeName("name").withKeyType(KeyType.HASH))
                .withAttributeDefinitions(new AttributeDefinition().withAttributeName("name")
                        .withAttributeType(ScalarAttributeType.S))
                .withProvisionedThroughput(
                        new ProvisionedThroughput().withReadCapacityUnits(1L).withWriteCapacityUnits(1L));

        // Create table if it does not exist yet
        TableUtils.createTableIfNotExists(dynamoDB, createTableRequest);
        // wait for the table to move into ACTIVE state
        TableUtils.waitUntilActive(dynamoDB, tableName);

        // Describe our new table
        DescribeTableRequest describeTableRequest = new DescribeTableRequest().withTableName(tableName);
        TableDescription tableDescription = dynamoDB.describeTable(describeTableRequest).getTable();
        System.out.println("Table Description: " + tableDescription);

        // Add an item
        Map<String, AttributeValue> item = newItem("Bill & Ted's Excellent Adventure", 1989, "****", "James",
                "Sara");
        PutItemRequest putItemRequest = new PutItemRequest(tableName, item);
        PutItemResult putItemResult = dynamoDB.putItem(putItemRequest);
        System.out.println("Result: " + putItemResult);

        // Add another item
        item = newItem("Airplane", 1980, "*****", "James", "Billy Bob");
        putItemRequest = new PutItemRequest(tableName, item);
        putItemResult = dynamoDB.putItem(putItemRequest);
        System.out.println("Result: " + putItemResult);

        // Scan items for movies with a year attribute greater than 1985
        HashMap<String, Condition> scanFilter = new HashMap<String, Condition>();
        Condition condition = new Condition().withComparisonOperator(ComparisonOperator.GT.toString())
                .withAttributeValueList(new AttributeValue().withN("1985"));
        scanFilter.put("year", condition);
        ScanRequest scanRequest = new ScanRequest(tableName).withScanFilter(scanFilter);
        ScanResult scanResult = dynamoDB.scan(scanRequest);
        System.out.println("Result: " + scanResult);

    } catch (AmazonServiceException ase) {
        System.out.println("Caught an AmazonServiceException, which means your request made it "
                + "to AWS, but was rejected with an error response for some reason.");
        System.out.println("Error Message:    " + ase.getMessage());
        System.out.println("HTTP Status Code: " + ase.getStatusCode());
        System.out.println("AWS Error Code:   " + ase.getErrorCode());
        System.out.println("Error Type:       " + ase.getErrorType());
        System.out.println("Request ID:       " + ase.getRequestId());
    } catch (AmazonClientException ace) {
        System.out.println("Caught an AmazonClientException, which means the client encountered "
                + "a serious internal problem while trying to communicate with AWS, "
                + "such as not being able to access the network.");
        System.out.println("Error Message: " + ace.getMessage());
    }
}

From source file:com.venu.springmvc.dao.AmazonDynamoDBDAO.java

License:Open Source License

public static void main(String[] args) throws Exception {
    init();/*ww w.  j ava 2 s .com*/

    try {
        String tableName = "my-favorite-movies-table";

        // Create a table with a primary hash key named 'name', which holds a string
        CreateTableRequest createTableRequest = new CreateTableRequest().withTableName(tableName)
                .withKeySchema(new KeySchemaElement().withAttributeName("name").withKeyType(KeyType.HASH))
                .withAttributeDefinitions(new AttributeDefinition().withAttributeName("name")
                        .withAttributeType(ScalarAttributeType.S))
                .withProvisionedThroughput(
                        new ProvisionedThroughput().withReadCapacityUnits(1L).withWriteCapacityUnits(1L));

        // Create table if it does not exist yet
        TableUtils.createTableIfNotExists(dynamoDB, createTableRequest);
        // wait for the table to move into ACTIVE state
        TableUtils.waitUntilActive(dynamoDB, tableName);

        // Describe our new table
        DescribeTableRequest describeTableRequest = new DescribeTableRequest().withTableName(tableName);
        TableDescription tableDescription = dynamoDB.describeTable(describeTableRequest).getTable();
        System.out.println("Table Description: " + tableDescription);

        // Add an item
        Map<String, AttributeValue> item = newItem("Gundamma katha", 1989, "****", "James", "Sara", "Venu");
        PutItemRequest putItemRequest = new PutItemRequest(tableName, item);
        PutItemResult putItemResult = dynamoDB.putItem(putItemRequest);
        System.out.println("Result: " + putItemResult);

        // Add another item
        item = newItem("Manadesam", 1980, "*****", "James", "Billy Bob", "Abburi");
        putItemRequest = new PutItemRequest(tableName, item);
        putItemResult = dynamoDB.putItem(putItemRequest);
        System.out.println("Result: " + putItemResult);

        // Scan items for movies with a year attribute greater than 1985
        HashMap<String, Condition> scanFilter = new HashMap<String, Condition>();
        Condition condition = new Condition().withComparisonOperator(ComparisonOperator.GT.toString())
                .withAttributeValueList(new AttributeValue().withN("1985"));
        scanFilter.put("year", condition);
        ScanRequest scanRequest = new ScanRequest(tableName).withScanFilter(scanFilter);
        ScanResult scanResult = dynamoDB.scan(scanRequest);
        System.out.println("Result: " + scanResult);

    } catch (AmazonServiceException ase) {
        System.out.println("Caught an AmazonServiceException, which means your request made it "
                + "to AWS, but was rejected with an error response for some reason.");
        System.out.println("Error Message:    " + ase.getMessage());
        System.out.println("HTTP Status Code: " + ase.getStatusCode());
        System.out.println("AWS Error Code:   " + ase.getErrorCode());
        System.out.println("Error Type:       " + ase.getErrorType());
        System.out.println("Request ID:       " + ase.getRequestId());
    } catch (AmazonClientException ace) {
        System.out.println("Caught an AmazonClientException, which means the client encountered "
                + "a serious internal problem while trying to communicate with AWS, "
                + "such as not being able to access the network.");
        System.out.println("Error Message: " + ace.getMessage());
    }
}

From source file:io.ignitr.dispatchr.manager.core.data.ClientRepository.java

License:Apache License

/**
 * Creates the DynamoDB tables that are used by this repository.
 *
 * @throws Exception/*  www  . j  av  a  2  s.  c o  m*/
 */
@PostConstruct
private void initialize() throws Exception {
    LOG.info("Initializing DynamoDB tables for TopicRepository...");

    CreateTableRequest clientRequest = new CreateTableRequest(
            Arrays.asList(new AttributeDefinition("clientId", ScalarAttributeType.S)), CLIENT_TABLE_NAME,
            Arrays.asList(new KeySchemaElement("clientId", KeyType.HASH)), new ProvisionedThroughput(4L, 1L));

    if (TableUtils.createTableIfNotExists(dynamoDBClient, clientRequest)) {
        LOG.info("Creating DynamoDB table '{}'...", CLIENT_TABLE_NAME);
    } else {
        LOG.debug("DynamoDB table '{}' already exists!  Skipping table creation.", CLIENT_TABLE_NAME);
    }

    LOG.info("Waiting for DynamoDB table '{}' to become active...", CLIENT_TABLE_NAME);
    TableUtils.waitUntilActive(dynamoDBClient, CLIENT_TABLE_NAME);
    LOG.info("DynamoDB table '{}' is active", CLIENT_TABLE_NAME);
}

From source file:io.ignitr.dispatchr.manager.core.data.SubscriptionRepository.java

License:Apache License

@PostConstruct
private void initialize() throws Exception {
    LOG.info("Initializing DynamoDB tables for SubscriptionRepository...");

    // Dispatchr_Subscription
    CreateTableRequest subscriptionRequest = new CreateTableRequest(
            Arrays.asList(new AttributeDefinition("id", ScalarAttributeType.S)), SUBSCRIPTION_TABLE_NAME,
            Arrays.asList(new KeySchemaElement("id", KeyType.HASH)), new ProvisionedThroughput(4L, 1L));

    // Dispatchr_TopicSubscriptions
    CreateTableRequest topicSubscriptionsRequest = new CreateTableRequest(
            Arrays.asList(new AttributeDefinition("topic", ScalarAttributeType.S),
                    new AttributeDefinition("subscriptionId", ScalarAttributeType.S)

            ), TOPIC_SUBSCRIPTIONS_TABLE_NAME, Arrays.asList(new KeySchemaElement("topic", KeyType.HASH),
                    new KeySchemaElement("subscriptionId", KeyType.RANGE)),
            new ProvisionedThroughput(4L, 1L));

    if (TableUtils.createTableIfNotExists(dynamoDBClient, subscriptionRequest)) {
        LOG.info("Creating DynamoDB table '{}'...", SUBSCRIPTION_TABLE_NAME);
    } else {//from  ww w .  j av  a2 s  . co m
        LOG.debug("DynamoDB table '{}' already exists!  Skipping table creation.", SUBSCRIPTION_TABLE_NAME);
    }

    if (TableUtils.createTableIfNotExists(dynamoDBClient, topicSubscriptionsRequest)) {
        LOG.info("Creating DynamoDB table '{}'...", TOPIC_SUBSCRIPTIONS_TABLE_NAME);
    } else {
        LOG.debug("DynamoDB table '{}' already exists!  Skipping table creation.",
                TOPIC_SUBSCRIPTIONS_TABLE_NAME);
    }

    LOG.info("Waiting for DynamoDB table '{}' to become active...", SUBSCRIPTION_TABLE_NAME);
    TableUtils.waitUntilActive(dynamoDBClient, SUBSCRIPTION_TABLE_NAME);
    LOG.info("DynamoDB table '{}' is active", SUBSCRIPTION_TABLE_NAME);

    LOG.info("Waiting for DynamoDB table '{}' to become active...", TOPIC_SUBSCRIPTIONS_TABLE_NAME);
    TableUtils.waitUntilActive(dynamoDBClient, TOPIC_SUBSCRIPTIONS_TABLE_NAME);
    LOG.info("DynamoDB table '{}' is active", TOPIC_SUBSCRIPTIONS_TABLE_NAME);
}

From source file:io.ignitr.dispatchr.manager.core.data.TopicRepository.java

License:Apache License

@PostConstruct
private void initialize() throws Exception {
    LOG.info("Initializing DynamoDB tables for TopicRepository...");

    CreateTableRequest request = new CreateTableRequest(
            Arrays.asList(new AttributeDefinition("name", ScalarAttributeType.S)), TOPIC_TABLE_NAME,
            Arrays.asList(new KeySchemaElement("name", KeyType.HASH)), new ProvisionedThroughput(4L, 1L));

    if (TableUtils.createTableIfNotExists(dynamoDBClient, request)) {
        LOG.info("Creating DynamoDB table '{}'...", TOPIC_TABLE_NAME);
    } else {//w w  w . j  av a 2  s.co m
        LOG.debug("DynamoDB table '{}' already exists!  Skipping table creation.", TOPIC_TABLE_NAME);
    }

    LOG.info("Waiting for DynamoDB table '{}' to become active...", TOPIC_TABLE_NAME);
    TableUtils.waitUntilActive(dynamoDBClient, TOPIC_TABLE_NAME);
    LOG.info("DynamoDB table '{}' is active", TOPIC_TABLE_NAME);
}

From source file:io.klerch.alexa.state.handler.AWSDynamoStateHandler.java

License:Open Source License

private void ensureTableExists() throws InterruptedException {
    // given custom table is always assumed as existing so you can have this option to bypass existance checks
    // for reason of least privileges on used AWS credentials or better performance
    if (!tableExistenceApproved || !tableExists()) {
        final ArrayList<AttributeDefinition> attributeDefinitions = new ArrayList<>();
        // describe keys
        attributeDefinitions.add(new AttributeDefinition().withAttributeName(pkUser).withAttributeType("S"));
        attributeDefinitions.add(new AttributeDefinition().withAttributeName(pkModel).withAttributeType("S"));
        // define keys
        final ArrayList<KeySchemaElement> keySchema = new ArrayList<>();
        keySchema.add(new KeySchemaElement().withAttributeName(pkUser).withKeyType(KeyType.HASH));
        keySchema.add(new KeySchemaElement().withAttributeName(pkModel).withKeyType(KeyType.RANGE));
        // prepare table creation request
        final CreateTableRequest awsRequest = new CreateTableRequest().withTableName(tableName)
                .withKeySchema(keySchema).withAttributeDefinitions(attributeDefinitions)
                .withProvisionedThroughput(new ProvisionedThroughput().withReadCapacityUnits(readCapacityUnits)
                        .withWriteCapacityUnits(writeCapacityUnits));
        // create on not existing table
        if (TableUtils.createTableIfNotExists(awsClient, awsRequest)) {
            log.info(String.format(
                    "Table '%1$s' is created in DynamoDB. Now standing by for up to ten minutes for this table to be in active state.",
                    tableName));//from   w w w.j av  a  2 s .c om
            // wait for table to be in ACTIVE state in order to proceed with read or write
            // this could take up to possible ten minutes so be sure to run this code once before publishing your skill ;)
            TableUtils.waitUntilActive(awsClient, awsRequest.getTableName());
        }
    }
}

From source file:main.java.ddb.loader.DDBLoaderUtils.java

License:Apache License

static void createTable() throws Exception {
    try {/*  ww  w  .  java 2 s .c  o m*/
        CreateTableRequest create_req = new CreateTableRequest().withTableName(DDBSampleLoader.TBL_NAME)
                .withKeySchema(new KeySchemaElement().withAttributeName("Id").withKeyType(KeyType.HASH))
                .withAttributeDefinitions(new AttributeDefinition().withAttributeName("Id")
                        .withAttributeType(ScalarAttributeType.S))
                .withProvisionedThroughput(
                        new ProvisionedThroughput().withReadCapacityUnits(DDBSampleLoader.RCU)
                                .withWriteCapacityUnits(DDBSampleLoader.WCU));

        DDBSampleLoader.log.info("Creating a new table ...");
        TableUtils.createTableIfNotExists(DDBSampleLoader.ddb_client, create_req);

        DDBSampleLoader.log.info("Waiting for the table status to be 'ACTIVE' ...");
        TableUtils.waitUntilActive(DDBSampleLoader.ddb_client, DDBSampleLoader.TBL_NAME);

    } catch (AmazonServiceException e) {
        DDBSampleLoader.log.error("Caught an AmazonServiceException ...");
        DDBSampleLoader.log.error("Error Message:    " + e.getMessage());
        DDBSampleLoader.log.error("HTTP Status Code: " + e.getStatusCode());
        DDBSampleLoader.log.error("AWS Error Code:   " + e.getErrorCode());
        DDBSampleLoader.log.error("Error Type:       " + e.getErrorType());
        DDBSampleLoader.log.error("Request ID:       " + e.getRequestId());

    } catch (AmazonClientException e) {
        DDBSampleLoader.log.error("Caught an AmazonClientException ...");
        DDBSampleLoader.log.error("Error Message:    " + e.getMessage());
    }
}

From source file:mx.iteso.desi.cloud.keyvalue.DynamoDBStorage.java

License:Apache License

public DynamoDBStorage(String dbName) {
    BasicAWSCredentials cred = new BasicAWSCredentials(Config.accessKeyID, Config.secretAccessKey);

    if (Config.DynamoDbClientType == Config.DYNAMODBCLIENTTYPE.Local) {
        client = new AmazonDynamoDBClient(cred);
        client.setRegion(Region.getRegion(Config.amazonRegion));
        client.setEndpoint("http://localhost:8000");
    } else {//from  w  w w  . j a  v  a2  s .  c  om
        client = AmazonDynamoDBClientBuilder.standard().withRegion(Config.amazonRegion)
                .withCredentials(new AWSStaticCredentialsProvider(cred)).build();
    }
    docClient = new DynamoDB(client);

    this.dbName = dbName;
    // Create a table
    CreateTableRequest createTableRequest = new CreateTableRequest().withTableName(dbName)
            .withKeySchema(new KeySchemaElement().withAttributeName("keyword").withKeyType(KeyType.HASH),
                    new KeySchemaElement().withAttributeName("inx").withKeyType(KeyType.RANGE))
            .withAttributeDefinitions(
                    new AttributeDefinition().withAttributeName("keyword")
                            .withAttributeType(ScalarAttributeType.S),
                    new AttributeDefinition().withAttributeName("inx").withAttributeType(ScalarAttributeType.N))
            .withProvisionedThroughput(
                    new ProvisionedThroughput().withReadCapacityUnits(1L).withWriteCapacityUnits(1L));
    // Create table if it does not exist yet
    TableUtils.createTableIfNotExists(client, createTableRequest);
    // Wait for the table to move into Active state
    try {
        TableUtils.waitUntilActive(client, dbName);
    } catch (Exception e) {
        // Do nothing... yet
    }
    //requestItems.put(dbName, requestList);
}