Transações

Uso da libcouchbase / C SDK para executar transações com o Couchbase 7.0

O Couchbase Server 7.0 agora oferece suporte a transações N1QL.

Vamos tentar escrever um programa em C que execute um conjunto de transações em um único nó.

Etapa 1: Primeiro decidimos como chamar o programa. As entradas serão o URL do bucket do Couchbase no qual queremos executar as consultas e as credenciais (nome de usuário seguido da senha). 

Uso:

Nas transações N1QL, um valor txid é retornado pelo comando START TRANSACTION. Esse valor é usado em todas as consultas N1QL subsequentes dentro da transação até o COMMIT ou ROLLBACK final. Portanto, devemos declarar um ID de transação na função principal, que pode ser passado para as solicitações de consulta restantes que fazem parte da transação. 

Etapa 2: Inicializa um ponteiro que será usado para salvar o ID da transação da consulta BEGIN TRANSACTION. Esse ID será usado em toda a transação.


Etapa 3: Inicializar o cluster 

Uma conexão com um cluster do Couchbase Server é representada por um lcb_INSTANCE objeto.

lcb_INSTANCE *instance;

O conjunto de operações permitidas depende do tipo desse objeto e se o bucket está associado a ele. Aqui, usamos o tipo Cluster. A maneira mais simples de criar um objeto de cluster é chamar lcb_create para criar um identificador do Couchbase, passando LCB_TYPE_CLUSTER com uma string de conexão, nome de usuário e senha. Em seguida, programamos uma conexão usando lcb_connect() e verificamos se o bucket existe. 


Etapa 4: Execute as consultas em query.h

Temos as consultas correspondentes à nossa transação definidas em queries.h. 


Precisamos usar uma biblioteca de análise de JSON em C para tratar os resultados da consulta e extrair o ID da transação. Aqui podemos usar a biblioteca json-c. Para obter o ID da transação da instrução BEGIN WORK (a primeira instrução), usamos a função de retorno de chamada txid. Para processar e executar as outras consultas, chamamos a função de retorno de chamada de linha. Isso retornará as linhas de resultado. 


Antes de executar as consultas, definimos três parâmetros de consulta: pretty, txtimeout (tempo limite da transação) e o txid que obtivemos na primeira instrução. Esses são parâmetros em nível de solicitação. 

Agora vamos nos aprofundar nas funções de retorno de chamada 

Txid_Callback - 

Aqui precisamos analisar a resposta JSON da execução da instrução BEGIN WORK para extrair o txid a ser passado para as instruções subsequentes como um parâmetro de consulta usando a biblioteca JSONC. Para isso, usamos o ponteiro criado anteriormente e o definimos no método lcb_respquery_cookie. Isso define o cookie da operação, o que significa que quando executamos lcb_query, há um argumento de cookie para ele e lcb_respquery_cookie obtém esse ponteiro em nossa função de retorno de chamada. (Criamos um ponteiro na função principal e o definimos na função de retorno de chamada).


Callback de linha - É usado para analisar e recuperar as linhas de resultado da execução da consulta. 


Aqui, obtemos a resposta da consulta, obtemos as linhas e as imprimimos. 

Usando o exemplo acima, agora podemos usar as transações N1QL no C SDK. Para obter o código completo e instruções sobre como executá-lo, consulte - https://github.com/ikandaswamy/CBSDK_N1QLExamples

 

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Isha Kandaswamy

Isha Kandaswamy é engenheira de software sênior da Couchbase. Isha é responsável pelo desenvolvimento de diferentes recursos e ferramentas para a linguagem de consulta N1QL -SQL para Json. Além disso, projetar e implementar recursos e ferramentas para a linguagem de consulta N1QL.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.