“Determinístico” diz que, se o estado do sistema for tal, e o método fazBesteira() for chamado, e ele jogar uma exceção, sempre que o sistema estiver no estado “tal”, o fazBesteira() deve lançar uma exceção.
Ou seja, não quer dizer que o método deve sempre retornar, mas sim que o método tem sempre que produzir o mesmo resultado dado o mesmo estado no sistema.
Isso se faz necessário pq, na recuperação dos logs, os métodos são executados de novo - daí também a limitação de se usar I/O ou depender do relógio do sistema nas Transactions
Talvez exista algum jeito de tornar o Prevayler mais confiavel, nesse sentido. Uma das maneiras que eu consigo imaginar aqui seria fazer o Prevayler logar numa fila JMS de entrega garantida (quem ja conseguiu fazer o MQSeries funcionar sabe do que eu tou falando, o bicho entrega a mensagem mesmo que caia uma bomba no datacenter)… ou, sei lah, gravar o txlog num arquivo texto (assim, ele pelo menos pode ser corrigido por um humano na pior da pior das hipoteses ;))
louds… Se ocorrer uma falha de software ou de SO, o Oracle é conhecido como “UNBREAKBLE”… Eu ja presenciei isso varias vezes…
E sem paixoes, eu nao colocaria um sistema critico rodando em Prevayler… Prefiro um RDBMS mesmo… ORACLE, DB2, SQLServer, etc…
Entretanto, talvez o sistema do Iron funcione legal e tenha qualidades sitemicas razoaveis usando o Prevayler, por ter muitas consultas e poucas atualizacoes…
Nao tem magica no que o Oracle faz. Ele grava tantos checksums em tantos lugares quantos forem possiveis. Da pra fazer um ObjectOutputStream que faca isso tambem (grave 3 vezes cada byte, em 3 arquivos identicos, mas localizados em particoes diferentes, e no fim de cada serie ainda ponha um checksum gigantesco, pra ser bem paranoico :D). Ou seja, a sua ideia de unbreakable eh meio subjetiva
[quote=“ozielneto”]louds… Se ocorrer uma falha de software ou de SO, o Oracle é conhecido como “UNBREAKBLE”… Eu ja presenciei isso varias vezes…
[]'s[/quote]
Eu falei desastres catastróficos Oziel, não falhas comuns. Quanto ao oracle, não posso questionar muito, maioria do problemas que eu já vi são culpa do people-ware.
Porém voce estava comparando com mysql e postgresql, produtos na mesma “faixa de preço” do prevayler. Eu já vi ambos bancos crashando sem motivo, falhando e perdendo transações commited por uma simples falta de luz e por ai vai.
O problema do prevayler é a serialização do java, que não foi feita para ser resistente a desastres. Usar 1 fila JMS seria 1 boa opção, mas existem soluções mais leves para aumentar a confiabilidade dos txfiles.
Há menos de 2 meses na empresa em que eu estava um nobreak mal dimensionado ou sobrecarregado pifou após uma brevíssima queda de luz. A falha foi tão breve e tão localizada que ninguém percebeu no resto da empresa. Nunca soubemos onde foram parar as transações perdidas depois o último backup porque o AIX não bootava mais e precisou ser reinstalado. Detalhe: não funcionou a instalação no modo preservation, pois o Oracle passou a dar conflito em uma maldita lib. Depois de muito googlar, buscar suporte e muitas outras tentativas, a solução foi reinstalar TUDO.
Tava lendo os post e acho demais querer comparar o Prevayler com o Oracle não que não possa ocorrer mas tipo no Oracle é um investimento porrada em cima dele…
E sobre esse esquema de “UNBREAKBLE” o banco Oracle é sim muito seguro e tal…mas quando o tio Larry lançou o desafio para os hackers um ecpecialista em segurança apontou diversas falhas no banco…e esses dias mesmo a Oracle adivertiu para uma tremenda falha de segurança. Bom quem tem acesso ao meta link deles sabe o quanto de path e correções que saem até uma versão do banco ficar estável.
A intenção do Prevayler não é substituir o Oracle…é só a de ser uma alternativa…Por ser simples,seus erros(ou prováveis problemas) são muito mais rastreáveis do q uma puta falha do Oracle…vc pode prever o q o sistema Prevalente não suportará e tomar providências qto a isso…num sistema usando Oracle,rola uma certa autosuficiência(ou seria negligência?)de algumas empresas…tipo -ah,o Oracle suporta!Depois eh um salve-se quem puder pagando 20.000 para um DBA diagnosticar uma falha(por vezes tola como a do NoBreak citado pelo Luca),e outros tantos para repará-lo…aliás,só por curiosidade,qto tah uma licença Oracle?