693 Shares 8282 views

O que é uma transação? sistemas de processamento de transações

Em um mundo onde tudo está mudando tão rapidamente, não podemos para uma paragem minuto. Isso se aplica ao recebimento de novas informações. termo desconhecido ou a versão mais recente do software – é uma ocasião para encher o conhecimento em uma área particular. Hoje vamos falar sobre o que a transação, como ele funciona.

Introdução à terminologia

Uma variedade de software para processos de negócios automatizando firmemente estabelecida no mercado nos últimos 15 anos. Isto requer a capacidade de trabalhar com software em diferentes níveis de interacção: como o operador, programador, contador, etc. Portanto, é importante compreender alguns dos mecanismos do programa. Para começar, vamos lidar com tais freqüentes e assustadoras muitos termos uma transação. Na maioria das vezes, para usar as palavras do belo escondida longe de ser um fenômeno tão complexo, como muitos imaginam, proferindo um novo termo, tentando-lo pela orelha. Vamos entender que tal transação.

a definição

Esta notação é usada para se referir a qualquer produto que implementa o banco de dados. Várias operações são logicamente combinadas em um e funcionando alternadamente um ao outro, e não há uma transação. Na vida cotidiana, a transação pode ser considerado como uma cadeia de procedimentos, tais como "acordado – lavado – vestido – Café da manhã – começou a trabalhar."

Considere o conceito acima para produtos Exemplo 1C. Transação – esta é a mesma seqüência indivisível. Um bom modelo pode servir como um registro da unidade de mercadoria: abrir o diretório desejado, criar uma nova entrada, preencher os campos fornecidos. Para garantir que todas essas ações levaram ao resultado desejado, é necessário implementá-las estritamente do primeiro ao último. Só então o procedimento será considerado um sucesso. Caso contrário, a transação é cancelada.

Estes processos podem ser automática, que é fornecido no sistema, e manualmente pelo desenvolvedor para terminar depois de comprar o produto acabado, a fim de tornar este último mais fácil para os usuários de uma empresa particular. Além disso, o modo automático, quando o comportamento do sistema é regulada por um mecanismo interno, transacções pode ser convertido para ser executado.

Movimentações no 1C: as sutilezas da linguagem embutida

O que é uma transação no caso geral, podemos compreender. Mas uma vez que cada empresa envolvida no desenvolvimento de software, tornando-se o seu próprio caminho, há certas diferenças entre as operações em geral e transacções em 1C em particular. Por exemplo, o aninhada (transacção dentro da transacção) não são suportados em 1C.

Do ponto de vista dos operadores de sintaxe built-in linguagem simples o suficiente. Iniciando o processo é anunciada por um BeginTransaction procedimento especial (). ZafiksirovatTranzaktsiyu () procedimento é usado para gravar as modificações durante a execução das ações. Se no processo falhar, é possível OtmenitTranzaktsiyu () para desfazer as alterações comprometidos.

Por que usar uma transação é preferível? Como o código nestes procedimentos é muito mais rápido. É a este e procura qualquer programador. A diferença de velocidade pode não ser tão perceptível se os usuários 1C no escritório 1-2 funcionários, mas é impossível não sentir quando se trata de departamentos inteiros, ao mesmo tempo para realizar vários trabalhos neste programa.

armadilhas

Além das vantagens óbvias, consistindo em um grave aumento na velocidade de leitura e gravação ao trabalhar com o banco de dados, em uma transação que há um menos. Vamos voltar ao exemplo anterior da vida. O que é uma transação que não é feito por uma pessoa, e toda a família? Todo mundo está tentando entrar no banheiro para lavar-se antes de tudo multidão na cozinha, porque é hora de pequeno-almoço. Como resultado, os membros da família estão descontentes com o outro. Na melhor das hipóteses, é apenas um mau começo do dia, e na pior das hipóteses – estar atrasado para o trabalho, uma repreensão de seus superiores, para frustrar.

No programa não é o mesmo. Se todos os usuários vão começar a modificar os dados ao mesmo tempo no mesmo documento, que é considerada a última versão? Quais dados são usados para salvar? A fim de evitar confusão tal, existe um mecanismo de bloqueio. Isto significa que, enquanto um utilizador está a trabalhar num documento, a segunda colocada na fila de espera virtual e. Após a conclusão ou reverter o documento pode não funcionar o próximo usuário.

Ou não pode ser controlada fechaduras?

O conceito de uma transação não pode ser totalmente resolvidas sem o problema de bloqueios excessivos. Qual é o mal maior: a ausência de fechaduras que levam ao processo anormal de leitura e escrita com os resultados errados na saída, ou muitos, operação inibindo de toda a empresa?

A melhor solução – controlada fechaduras, que são a média de ouro. Um programador competente pode personalizar um mecanismo existente para as necessidades da organização, de modo que os documentos realmente importantes sejam processados na fila de ordem. De acordo com os mesmos elementos de configuração, que não necessitam de fechaduras, você pode permitir a edição gratuita.

Assim, uma análise atempada das transacções ea atitude certa para bloquear permite pleno uso da flexibilidade do sistema "1C: Empresa" e otimizar a operação de banco de dados, minimizando as perdas de tempo.

O que causa bloqueio excessivo?

A pergunta não é retórica. Se for necessário remover o bloqueio, haverá confusão e caos. O banco de dados irá recolher os dados errados por causa dos saldos write-off simultâneas, ou, inversamente, o acúmulo de bens. Mas as consequências de tal tipo que vão surgir ao mesmo tempo. Pela primeira vez, o trabalho irá rapidamente, criando a ilusão de correção da escolha de falha de bloqueio. Por outro lado, um grande número de bloqueios mal concebidas imediatamente fazendo com que as mensagens de erro. "Não é possível concluir transação segura" – adverte nosso sistema. O que significa? Dois mutuamente bloqueadas transação entre si de modo que ninguém pode concluir o trabalho, ou para realizar o cancelamento. O círculo vicioso de transação "morto" vai pendurar no banco de dados antes da detecção, reduzindo significativamente o desempenho do sistema.

ações de cancelamento cirurgia desnecessários para aumentar o número de entradas no log. Além disso, um tal sistema não é viável, porque ainda maior do usuário simplesmente enterrá-lo sob o peso de fechaduras "mortos". O tempo de inatividade é sempre crescente. Como evitar tais situações?

níveis de isolamento – um caminho para não encalhar

Além do fato de que uma tal operação, mencionamos sobre as armadilhas. Continuando a analogia, podemos confiantemente afirmar que a variação no nível do bloqueio – uma ferramenta confiável um piloto em uma jornada para o 1C mar. Existem dois níveis de isolamento: "somente leitura, nenhuma entrada" e "não de gravação ou leitura." Na seleção do modo automático não está disponível. Mas é o suficiente para traduzir o aplicativo no modo gerenciado, e você pode colocar restrições "inteligentes", escolhendo não apenas os documentos importantes, mas também atribuir-lhes o nível adequado de isolamento.

No entanto, o trabalho bem encenado – é, acima de tudo, a prevenção de situações de emergência, e não só liquidação atempada já ocorreu falhas. administrador de banco de dados assistente irá fornecer sistemas de processamento de transações. É com base nesses dados, como foi qualquer operação no sistema, quer tenham sido concluída ou cancelada com sucesso, é possível prever a mais comportamento do sistema e prevenir possíveis ameaças.

Um resumo geral

Lidamos com a definição da transação, considerado um fluxograma do processo a partir do interior, me familiarizei com as diferentes formas de regular as operações dentro de uma única base de informações.

Como mostrado, o mecanismo não é fácil, mas fácil de entender e lidar melhor com os programadores, mesmo novatos e administradores de banco de dados. métodos de controle ainda não pode ser levado à perfeição, e para evitar problemas em um modo totalmente automático, também, não é possível, mas, no entanto, a cada nova versão da vida desenvolvedor de software torna-se mais fácil.