2

Created a cluster [cluster name : staging-dax-cluster.ckbrjt.clustercfg.dax.use1.cache.amazonaws.com] in us-east-1 region . When i try to use the cluster getting the below exceptions.

The common lib logging backed is deprecated. Switch to the slf4j backend. Cloud Watch appender is no longer supported. Use the stdOut appender or SLF4J backed.

Exception in thread "main" com.amazon.dax.client.exceptions.DaxServiceException: NotImplementedException
    at com.amazon.dax.client.dynamodbv2.ExceptionTranslator.createValidationException(ExceptionTranslator.java:91)
    at com.amazon.dax.client.dynamodbv2.ExceptionTranslator.translateException(ExceptionTranslator.java:80)
    at com.amazon.dax.client.dynamodbv2.DaxClient.handleException(DaxClient.java:1898)
    at com.amazon.dax.client.dynamodbv2.DaxClient.describeTable(DaxClient.java:610)
    at com.amazon.dax.client.dynamodbv2.ClusterDaxClient$21.call(ClusterDaxClient.java:328)
    at com.amazon.dax.client.dynamodbv2.ClusterDaxClient$21.call(ClusterDaxClient.java:325)
    at com.amazon.dax.client.dynamodbv2.ClusterDaxClient$RetryHandler.makeRequestWithRetries(ClusterDaxClient.java:635)
    at com.amazon.dax.client.dynamodbv2.ClusterDaxClient.makeReadRequestWithRetries(ClusterDaxClient.java:604)
    at com.amazon.dax.client.dynamodbv2.ClusterDaxClient.describeTable(ClusterDaxClient.java:325)
    at com.amazonaws.services.dynamodbv2.util.TableHelper.verifyTableExists(TableHelper.java:51)
    at com.amazonaws.services.dynamodbv2.util.TableHelper.verifyOrCreateTable(TableHelper.java:117)
    at com.amazonaws.services.dynamodbv2.transactions.TransactionManager.verifyOrCreateTransactionTable(TransactionManager.java:180)
    at com.usermind.integrations.api.dao.DynamoDbPersistenceContext.verifyOrCreateTransactionTables(DynamoDbPersistenceContext.java:151)
    at com.usermind.integrations.api.dao.DynamoDbPersistenceContext.<init>(DynamoDbPersistenceContext.java:138)
    at com.usermind.integrations.api.App.initPersistenceContext(App.java:143)
    at com.usermind.integrations.api.AbstractSparkApp.run(AbstractSparkApp.java:17)
    at com.usermind.integrations.api.App.main(App.java:93)
Balasubramanian
  • 700
  • 7
  • 26
Utharaa M
  • 23
  • 4

1 Answers1

3

DAX doesn't recognize DynamoDB operations for managing tables, in your case "describeTable". Read and write operations are supported. See documentation for detailed APIs.

  • thanks for the above information. when i try to use dax for getItem i face `com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException: not supported; requires @DynamoDBTyped or @DynamoDBTypeConverted exception`. – Utharaa M Oct 24 '17 at 07:29
  • what is the difference between AmazonDaxClient and DaxClient. Which one should we use for cache read operation for dynamodb – Utharaa M Oct 24 '17 at 13:09
  • AmazonDaxClient is the interface to substitute AmazonDynamoDB. DaxClient is an implementation of AmazonDaxClient interface. However, DaxClient is a single node client, which you typically shouldn't use. You should use ClusterDaxClient instead, which is also an implementation of AmazonDaxClient interface, but contains load balancing and health check logic for the DAX cluster. For more information on how to use ClusterDaxClient, please see [documentation](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.client.modify-your-app.html) – Abdelrahman Elhaddad Oct 24 '17 at 16:29
  • I think what might be confusing is that there are two AmazonDaxClient definitions. com.amazon.dax.client.dynamodbv2.AmazonDaxClient is an *interface* to substitute AmazonDynamoDB interface. This is what you should use to substitute DynamoDB read and write operations. com.amazonaws.services.dax.AmazonDaxClient is a *class* for DAX cluster provisioning operations, create cluster, describe cluster, etc... – Abdelrahman Elhaddad Oct 24 '17 at 16:38
  • Can we use DynamoDBMapper for DaxClient? if No then what should be the replacement? – Utharaa M Oct 27 '17 at 08:37