Search in sources :

Example 11 with CosmosAsyncContainer

use of com.azure.cosmos.CosmosAsyncContainer in project azure-cosmos-java-sql-api-samples by Azure-Samples.

the class SalesOrder method PerformanceTipsJavaSDKv4RequestChargeSpecAsync.

/**
 * https://docs.microsoft.com/en-us/azure/cosmos-db/performance-tips-java-sdk-v4-sql
 * Performance tips - get request charge
 */
/**
 * Performance tips - get request charge
 */
public static void PerformanceTipsJavaSDKv4RequestChargeSpecAsync() {
    CosmosAsyncContainer asyncContainer = null;
    CustomPOJO item = null;
    String pk = "pk_value";
    // <PerformanceRequestChargeAsync>
    CosmosItemResponse<CustomPOJO> response = asyncContainer.createItem(item).block();
    response.getRequestCharge();
// </PerformanceRequestChargeAsync>
}
Also used : CosmosAsyncContainer(com.azure.cosmos.CosmosAsyncContainer) CustomPOJO(com.azure.cosmos.examples.common.CustomPOJO)

Example 12 with CosmosAsyncContainer

use of com.azure.cosmos.CosmosAsyncContainer in project azure-cosmos-java-sql-api-samples by Azure-Samples.

the class SalesOrder method MigrateJavaSDKv4ContainerTTLAsync.

/**
 * https://docs.microsoft.com/en-us/azure/cosmos-db/migrate-java-v4-sdk
 * Container TTL
 */
/**
 * Container TTL
 */
public static void MigrateJavaSDKv4ContainerTTLAsync() {
    String hostName = "hostname";
    String partition_key = "/pk";
    CosmosAsyncDatabase database = null;
    // <MigrateContainerTTLAsync>
    CosmosAsyncContainer container;
    // Create a new container with TTL enabled with default expiration value
    CosmosContainerProperties containerProperties = new CosmosContainerProperties("myContainer", "/myPartitionKey");
    containerProperties.setDefaultTimeToLiveInSeconds(90 * 60 * 60 * 24);
    ThroughputProperties throughputProperties = ThroughputProperties.createManualThroughput(400);
    database.createContainerIfNotExists(containerProperties, throughputProperties).block();
    container = database.getContainer("myContainer");
// </MigrateContainerTTLAsync>
}
Also used : ThroughputProperties(com.azure.cosmos.models.ThroughputProperties) CosmosAsyncContainer(com.azure.cosmos.CosmosAsyncContainer) CosmosAsyncDatabase(com.azure.cosmos.CosmosAsyncDatabase) CosmosContainerProperties(com.azure.cosmos.models.CosmosContainerProperties)

Example 13 with CosmosAsyncContainer

use of com.azure.cosmos.CosmosAsyncContainer in project azure-cosmos-java-sql-api-samples by Azure-Samples.

the class SalesOrder method TroubleshootingGuideJavaSDKv4NeedsSchedulerAsync.

/**
 * https://docs.microsoft.com/en-us/azure/cosmos-db/troubleshoot-java-sdk-v4-sql
 * Troubleshooting guide - needs scheduler
 * Async only
 */
/**
 * Troubleshooting guide - needs scheduler
 */
public static void TroubleshootingGuideJavaSDKv4NeedsSchedulerAsync() {
    CosmosAsyncContainer container = null;
    CustomPOJO item = null;
    // <TroubleshootNeedsSchedulerAsync>
    // Bad code with read timeout exception
    int requestTimeoutInSeconds = 10;
    /* ... */
    AtomicInteger failureCount = new AtomicInteger();
    // Max number of concurrent item inserts is # CPU cores + 1
    Flux<Family> familyPub = Flux.just(Families.getAndersenFamilyItem(), Families.getAndersenFamilyItem(), Families.getJohnsonFamilyItem());
    familyPub.flatMap(family -> {
        return container.createItem(family);
    }).flatMap(r -> {
        try {
            // Time-consuming work is, for example,
            // writing to a file, computationally heavy work, or just sleep.
            // Basically, it's anything that takes more than a few milliseconds.
            // Doing such operations on the IO Netty thread
            // without a proper scheduler will cause problems.
            // The subscriber will get a ReadTimeoutException failure.
            TimeUnit.SECONDS.sleep(2 * requestTimeoutInSeconds);
        } catch (Exception e) {
        }
        return Mono.empty();
    }).doOnError(Exception.class, exception -> {
        failureCount.incrementAndGet();
    }).blockLast();
    assert (failureCount.get() > 0);
// </TroubleshootNeedsSchedulerAsync>
}
Also used : PartitionKey(com.azure.cosmos.models.PartitionKey) LoggerFactory(org.slf4j.LoggerFactory) ExcludedPath(com.azure.cosmos.models.ExcludedPath) Scheduler(reactor.core.scheduler.Scheduler) ArrayList(java.util.ArrayList) ProxyOptions(com.azure.core.http.ProxyOptions) DirectConnectionConfig(com.azure.cosmos.DirectConnectionConfig) Families(com.azure.cosmos.examples.common.Families) Family(com.azure.cosmos.examples.common.Family) CosmosAsyncContainer(com.azure.cosmos.CosmosAsyncContainer) CosmosStoredProcedureRequestOptions(com.azure.cosmos.models.CosmosStoredProcedureRequestOptions) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) ThroughputProperties(com.azure.cosmos.models.ThroughputProperties) Duration(java.time.Duration) Schedulers(reactor.core.scheduler.Schedulers) ConsistencyLevel(com.azure.cosmos.ConsistencyLevel) JsonNode(com.fasterxml.jackson.databind.JsonNode) CosmosItemRequestOptions(com.azure.cosmos.models.CosmosItemRequestOptions) ExecutorService(java.util.concurrent.ExecutorService) ChangeFeedProcessorBuilder(com.azure.cosmos.ChangeFeedProcessorBuilder) CustomPOJO(com.azure.cosmos.examples.common.CustomPOJO) CosmosContainerProperties(com.azure.cosmos.models.CosmosContainerProperties) CosmosStoredProcedureProperties(com.azure.cosmos.models.CosmosStoredProcedureProperties) IndexingPolicy(com.azure.cosmos.models.IndexingPolicy) Logger(org.slf4j.Logger) GatewayConnectionConfig(com.azure.cosmos.GatewayConnectionConfig) IncludedPath(com.azure.cosmos.models.IncludedPath) IndexingMode(com.azure.cosmos.models.IndexingMode) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException) Mono(reactor.core.publisher.Mono) ChangeFeedProcessor(com.azure.cosmos.ChangeFeedProcessor) CosmosItemResponse(com.azure.cosmos.models.CosmosItemResponse) CosmosClientBuilder(com.azure.cosmos.CosmosClientBuilder) InetSocketAddress(java.net.InetSocketAddress) Executors(java.util.concurrent.Executors) TimeUnit(java.util.concurrent.TimeUnit) Flux(reactor.core.publisher.Flux) List(java.util.List) CosmosAsyncClient(com.azure.cosmos.CosmosAsyncClient) CosmosAsyncDatabase(com.azure.cosmos.CosmosAsyncDatabase) ConflictResolutionPolicy(com.azure.cosmos.models.ConflictResolutionPolicy) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) CosmosAsyncContainer(com.azure.cosmos.CosmosAsyncContainer) Family(com.azure.cosmos.examples.common.Family) CustomPOJO(com.azure.cosmos.examples.common.CustomPOJO) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException)

Example 14 with CosmosAsyncContainer

use of com.azure.cosmos.CosmosAsyncContainer in project azure-cosmos-java-sql-api-samples by Azure-Samples.

the class SalesOrder method PerformanceTipsJavaSDKv4NoPKSpecAsync.

/**
 * https://docs.microsoft.com/en-us/azure/cosmos-db/performance-tips-java-sdk-v4-sql
 * Performance tips - not specifying partition key in point-writes
 */
/**
 * Performance tips - not specifying partition key in point-writes
 */
public static void PerformanceTipsJavaSDKv4NoPKSpecAsync() {
    CosmosAsyncContainer asyncContainer = null;
    CustomPOJO item = null;
    String pk = "pk_value";
    // <PerformanceNoPKAsync>
    asyncContainer.createItem(item, new PartitionKey(pk), new CosmosItemRequestOptions()).block();
// </PerformanceNoPKAsync>
}
Also used : CosmosItemRequestOptions(com.azure.cosmos.models.CosmosItemRequestOptions) CosmosAsyncContainer(com.azure.cosmos.CosmosAsyncContainer) PartitionKey(com.azure.cosmos.models.PartitionKey) CustomPOJO(com.azure.cosmos.examples.common.CustomPOJO)

Example 15 with CosmosAsyncContainer

use of com.azure.cosmos.CosmosAsyncContainer in project azure-cosmos-java-sql-api-samples by Azure-Samples.

the class SalesOrder method PerformanceTipsJavaSDKv4AddPKSpecAsync.

/**
 * https://docs.microsoft.com/en-us/azure/cosmos-db/performance-tips-java-sdk-v4-sql
 * Performance tips - add partition key in point-writes
 */
/**
 * Performance tips - add partition key in point-writes
 */
public static void PerformanceTipsJavaSDKv4AddPKSpecAsync() {
    CosmosAsyncContainer asyncContainer = null;
    CustomPOJO item = null;
    // <PerformanceAddPKAsync>
    asyncContainer.createItem(item).block();
// </PerformanceAddPKAsync>
}
Also used : CosmosAsyncContainer(com.azure.cosmos.CosmosAsyncContainer) CustomPOJO(com.azure.cosmos.examples.common.CustomPOJO)

Aggregations

CosmosAsyncContainer (com.azure.cosmos.CosmosAsyncContainer)16 CustomPOJO (com.azure.cosmos.examples.common.CustomPOJO)9 CosmosAsyncDatabase (com.azure.cosmos.CosmosAsyncDatabase)7 CosmosContainerProperties (com.azure.cosmos.models.CosmosContainerProperties)7 ThroughputProperties (com.azure.cosmos.models.ThroughputProperties)7 JsonNode (com.fasterxml.jackson.databind.JsonNode)5 ChangeFeedProcessor (com.azure.cosmos.ChangeFeedProcessor)4 ChangeFeedProcessorBuilder (com.azure.cosmos.ChangeFeedProcessorBuilder)4 CosmosItemRequestOptions (com.azure.cosmos.models.CosmosItemRequestOptions)4 CosmosItemResponse (com.azure.cosmos.models.CosmosItemResponse)4 PartitionKey (com.azure.cosmos.models.PartitionKey)4 JsonProcessingException (com.fasterxml.jackson.core.JsonProcessingException)4 Scheduler (reactor.core.scheduler.Scheduler)4 ConsistencyLevel (com.azure.cosmos.ConsistencyLevel)3 CosmosAsyncClient (com.azure.cosmos.CosmosAsyncClient)3 CosmosClientBuilder (com.azure.cosmos.CosmosClientBuilder)3 Family (com.azure.cosmos.examples.common.Family)3 ExcludedPath (com.azure.cosmos.models.ExcludedPath)3 IncludedPath (com.azure.cosmos.models.IncludedPath)3 IndexingPolicy (com.azure.cosmos.models.IndexingPolicy)3