Projeto Final-Brainstorming

26 respostas
Ironlynx

Bem pessoal,chegou a hora!!!
Uma descrição do meu sistema:

.::Projeto Final::…::TIA-Terminal De Informações Acadêmicas::…

O Sistema consiste em um terminal de informações universitário para 150000 estudantes,

aonde será necessário que o sistema permita:inserir e excluir disciplinas,consultar sala virtual,consultar ofertas de emprego,modificar dados cadastro do aluno,lançamento de notas por parte do professor,lançamento de frequencia,correção de um possível erro e inserção de

matérias na sala virtual.Detalhes Do Sistema:

O Aluno ou Professor entra na home da faculdade e insere sua matrícula e aperta OK.

Se a matrícula for válida,abrirá uma segunda página que conterá um teclado virtual aonde o aluno/professor deverá digitar sua senha.Se incorreta,um aviso será exibido,alertando o erro.Uma vez logado ao sistema,lhes são dados as seguintes permissões:

a)Ao aluno:

-Renovar sua matrícula inserindo/excluindo disciplinas;

-consultar sala virtual,para baixar materiais deixados pelo professor;

-consultar ofertas de estágios/empregos,que lhes são disponibilizados pela Central de

Empregos Da Universidade;

-consultar dados cadastrais(alterando se necessário for);

-consultar histórico escolar(imprimindo se necessário);

-pedir segunda via de mensalidade(imprimindo);

-consultar datas(calendário) das provas;

-consultar resultados(notas de provas);

-consultar quadro de horários;

-consultar disciplinas liberadas para cursar;

-consultar listas de disciplinas pendentes;

-consultar listas de livros emprestados(pela biblioteca do campus);

-consultar e se inscrever na agenda de atividades do aluno(como cursos e atividades extracurriculares);

-fazer pedidos de Requerimentos/Declarações como:

DECLARAÇÃO ESTAGIÁRIO MINISTÉRIO DO TRABALHO

DECLARAÇÃO DATAS DE PROVAS

DECLARAÇÃO DE APROVAÇÃO NO VESTIBULAR

DECLARAÇÃO DE AUTORIZAÇÃO/RECONHECIMENTO

DECLARAÇÃO DE COMPARECIMENTO À PROVA

DECLARAÇÃO DE COMPARECIMENTO AO VESTIBULAR

DECLARAÇÃO DE CONCLUSÃO DO PERÍODO ACADÊMICO

DECLARAÇÃO DE CONDUTA ESCOLAR

DECLARAÇÃO DE HORÁRIO

DECLARAÇÃO DE MATRÍCULA

DECLARAÇÃO DE MATRÍCULA COM DISCIPLINAS

HISTÓRICO ESCOLAR OFICIAL

ISENÇÃO DE DISCIPLINA

MUDANÇA DE CURRÍCULO

MUDANÇA DE HABILITAÇÃO

PORTARIA 515

PROGRAMA DAS DISCIPLINAS

PTP/RAC - HISTÓRICO DE ATIVIDADES COMPLEMENTARES

PTP/RAC - VERIFICAÇÃO DE HORAS NÃO LANÇADAS

QUEBRA DE PRÉ-REQUISITO
b)Ao professor:

-Lançar notas(de Pr1,Pr2,2ªChamada e Final)

-Lançar Frequência;

-Consultar seu quadro de horários(turmas em que dará aulas);

-Consultar/Alterar dados cadastrais;

-Inserir/Excluir/Gerenciar Conteúdo na sala de Aula virtual(Pdf´s,Doc´s e ementas     referentes a disciplinas);

-Falar com RH;

-Acertar notas e Frequências;

-Consultar notas e Frequências;

-Pedir(solicitar)acerto de notas e frequências(solicitação a secretaria);</blockquote>

Bem,mais alguns detalhes:
O cadastro dos alunos não é feito pelo meu sistema,isso é pela intranet da universidade.O máximo que é permitido é alterar o cadastro(quando se muda o email,telefone).
Fora a alteração de cadastro e requisição de algum doc.,não existem dados alteráveis por digitação(q exijam checagem de tipo).A escolha de diciplinas é feita por opções disponíveis numa tabela,via seleção e apertar confirmar.
O sistema é totalmente CENTRALIZADO.Ou seja,apesar de existirem 30 unidades em diferentes cidades,não importa qual,mas a matrícula é única para todos.
A príncipio utilizaria o esquema Servlets-JSP-Prevayler(o num de consultas é maçiço)mas estou aberto a opniões…
Gostaria da opnião de frameworks a serem utilizados,melhor forma de gerenciar sessão(podem ter milhares ao mesmo tempo acessando o sistema).Pensei num esquema de múltiplos DAOs(eu sei,agora é TDG) como o projeto do GUJ2,mas ainda não me decidi sobre nada.
Outro detalhe,gostaria de á princípio, evitar EJB.Não quero complexidade excessiva sobre o sistema…
Qual a melhor forma de eu evitar uma falha de badblock?Pensei em RAID1 ou um esquema Mestre-Escravo,mas tenho medo da complexidade de gerenciar o sincronismo dos mesmos.
NOTA:É provavel que só implemente a parte do aluno,então gostaria inicialmente de pensar numa forma mais simples possível de se fazer esse sistema.Nem todos os detalhes da descrição serão implementados,aquilo é só para ilustrar a situação…(é como é o sistema atual…)

26 Respostas

Daniel_Quirino_Olive

Bom, já que você está aceitando qualquer sugestão, aí vai a minha: Java Web Start + Jini + Prevayler/JavaSpaces (de preferência Prevayler, já que JavaSpaces é meio malinha).

louds

Eclipse Rich Client Platform!

Ironlynx

Apesar do nome TIA,é um sistema web(100%)…(para quem não leu tudo).
Daniel,
aonde eu encaixaria o JWS???-Desculpe,pois não tenho nenhuma experiência com ele.

louds,o que é Eclipse Rich Client Platform???
Louds sistema Master-Slave ou raid1 para segurança dos dados?(e evitar prováveis bad-blocks…)

Pessoal,primeiro queria pensar em algo funcional,como um Presto melhorado,para que eu pudesse por logo em implementação…depois eu implementaria todas as features necessarias…esses detalhes todos são para um perfeita descrição do sistema,não necessariamente implementarei tudo.

Ironlynx

Alguém tem algum link de benchs de ServidoresWeb e/ou Containers?
Qual o free mais rápido(q aguenta mais requisições/seg)?E o Pago?

Ironlynx

Pô,isso jah tá virando um Blog… :?
Alguém tem um exemplo de teclado virtual dinâmico?
Tô penando para achar um…
Eu saco bem de js(javascript)tanto quanto o cv é abstêmio… :smiley:

Ironlynx

Someone? :?
Tô sentindo que meu Ibope tá alto… :roll:
Qual a melhor forma de garantir a segurança no meu sistema?
Tenho 150mil Objetos(Gordos) que não podem ser perdidos/corrompidos…alguma idéia?

cv1

Faca backups :slight_smile:

Ironlynx

Qual a frequência q devo executá-los?(fazer backups)
Digo,como calcular a necessidade num sistema q possui 50-100K acessos/dia.Existe alguma base de cálculo para isso?
As escritas aumentam assustadoramente na época de matrícula(são quase inexistentes nas demais épocas)…isso tb deve ser considerado…

Ironlynx

Como era de ser esperado,o projeto foi tesourado pelo coordenador de projetos,ficando(temporariamente) assim:

Agora está mais simples.Idéias serão bem-vindas pessoal! :smiley:

Ironlynx

Cv,dah uma lidinha no q vou colocar na monografia…tô meio sem inspiração,posso tah escrevendo um bando de m… derrepente…


.::::::::::::::::::::::Uma Breve Introdução a Prevalência De Objetos:::::::::::::::::::::::.

Durante mais de trinta anos,a principal forma de persistência de dados no mundo da informática foi direcionada pelo modelo de banco de dados relacionais(BDRs), que organiza seus dados em relações,onde cada relação pode ser vista como uma simples tabela,e uma coluna corresponde a atributos da mesma(ou campos da tabela),e as linhas são os elementos dessa relação(ou registros dessa tabela),também conhecidas por tuplas.
Essa estrutura de fácil acesso e esse modelo de organização de dados em tabelas,permitiu uma forte popularização do modelo relacional,assim como a padronização por meio de uma linguagem de consulta estruturada(SQL-Struture Query Language),da forma de como manipular esses dados e a forte base matemática nela embutida.
Com o passar dos anos,uma gama de linguagens de programação foi surgindo,novos ambientes,novas máquinas,com diversos recursos novos,e o outrora revolucionário modelo relacional foi ficando defasado em preencher lacunas criadas pelas novas necessidades do incessante(e metamórfico) mundo digital.
Nos anos 70,guardar(armazenar) dados era fundamental,haja vista que os mais modernos computadores não possuíam sequer alguns megas de disco rígido.Os BDRs preencheram essa lacuna muito bem,pois permitiam um modelo de fácil compreensão e asseguravam facilmente que seus dados seriam corretamente persistidos.Surgiram conceitos revolucionários como chave,que permitia diferenciar um registro de outro,e o modelo de entidade-relacionamento que estabelecia uma ligação entre as diversas tabelas existentes num Sistema de Bancos Relacionais.Naquele tempo,persistir a informação era o necessário,e garantir a integridade das informações,dava aos BDRs longa vida no mundo da informática,num universo que a cada 18 meses dobram a capacidade dos microprocessadores.
Como era esperado,esse modelo foi esgotando sua infinidade de recursos(que hoje se mostram escassos)e,novos modelos de organização e persistência de dados se fizeram necessários surgir.Novos paradigmas de persistência de dados surgiram não porque os bancos ficaram necessariamente ultrapassados,mas sim porque a inportância da informação cresceu cada vez mais(já era grande),e a forma de como lidar com as mesmas se tornaram cada vez mais diversificadas e complexas.Um modelo baseado em consultas SQL não pode representar um modelo rico de objetos,como os representados em linguagens Orientadas a Objetos,e mesmo simular isso,mostra-se estremamente trabalhoso e ineficiente.
Representar dados de objetos em tabelas é possível(por meio de ferramentas de mapeamento Objeto-Relacional),mas não é indicado,pois dará uma visualização plana demais de um modelo orientado a objetos.Prevalecer objetos,permite persistir os objetos oriundos de um programa feito em linguagem OO,mantendo os atributos desses objetos com o encapsulamento definidos originariamente para os mesmos em sua origem.Detalhe:a prevalência persiste os objetos em RAM(Memória Principal),permitindo acesso aos mesmos numa velocidade muito superior aos persistidos diretamente em disco,mantendo a transparência necessária aos seus objetos.
A prevalência de objetos(em Java) evita o mapeamento objeto-relacional,geralmente feito por meio de XMLs,Strings SQL e arquivos que não sofrem um meio de compilação,gerando prováveis erros de execução por vezes difíceis de serem depurados.Quando um Sistema apresenta poucas classes,os erros são facilmente rastreáveis(em geral),mas em Sistemas com centenas de classes(ou mais),deixar cada uma dessas classes mapeadas em banco é necessário e a chance de erros cresce significativamente.Quando se altera o Banco,pode ser necessário(depende da aplicação) alterar cada uma dessas classes e seus respectivos mapeamentos.
Prevalência de objetos não é algo exclusivo da Linguagem Java,pois pode ser usada por qualquer linguagem que esteja habilitada a prover algum mecanismo de serialização ou escrever alguma forma de registro dos dados em disco existentes em ram(snapshots).Existem camadas de prevalência em distintas linguagens como Delphi,C# e Perl.


.::::::::::::::::::::::::::::Introdução ao Prevayler:::::::::::::::::::::::::::::::::::::::.

Prevayler é um framework que permite persistir objetos em RAM(1).Em outras palavras,é um mecanismo de prevalência feito para a plataforma Java.
Como é um sistema prevalente,seus dados são mantidos em RAM,e através de comandos(por meio do Prevayler) e objetos seriáveis(por meio de programação do desenvolvedor),toda a informação necessária a ser persistida é passada ao disco rígido(em logs de transacao e snapshots em disco).Como as manipulações de dados(consultas,inserções,exclusões) são feitas em código Java puro,a flexibilidade de API´s como java.util.Collection e Jakarta Commons Collections dão a liberdade necessária ao correto desenvolvimento orientado a objeto,além de uma simplicidade muito grande no código,sendo apenas necessário garantir que seus objetos de negócios(que serão persistidos) e suas respectivas transações sejam seriáveis e determinísticas permitindo que as mudanças nesses objetos de negócio sejam persistidas transparentemente, e recuperadas ao reiniciar a aplicação, serializando as mudanças em sequência(a chamada fila de serialização), e reaplicando estas em ordem, ao reiniciar a aplicação.Uma vez reiniciada a aplicação após sua finalização ou depois de uma falha no sistema,o sistema prevalente devolve o último estado salvo em um snapshot(se algum for tirado),e então lê os comandos criados em arquivos de log desde que o último snapshot foi tirado.

Algumas Vantagens do Prevayler:
-Simplicidade(Para quem conhece Java)
-Mantém a abordagem orientada a objetos pura em seu sistema.
-velocidade absurda comparado a um BDR(podendo ser milhares de vezes mais rapido).
-É a abordagem ideal de persistência quando todos os dados de um Sistema cabe na memória principal(RAM).
-É de código aberto,permitindo a um (bom)programador alterar seu código se necessário for para sua necessidade.
-É uma abordagem ideal para aplicações de única thread(sem concorrência),pois todas as modificações são executadas em série(devido a serialização).
-Facilita o reuso de software,pois não há abordagem mapeamento-relacional,dispensando administradores de banco de dados(uma camada de abstração a mais),menos
-permite usar um sistema profissional “limpo” de licenças de software,podendo utilizar uma plataforma Linux-Java,o que acarreta um alto custo-benefício em relação a sistemas

Algumas Desvantagens do Prevayler:
-Exige do programador um bom conhecimento da linguagem,pois exige que todos os controles de todas as transações necessárias sejam escritas(controle de índices,consultas,além da própria persistência em si).É simples,mas não é para amadores na linguagem Java.
-não é indicado quando seus objetos de negócio não são totalmente armazenáveis em memória(Base de dados muito maior que a RAM).
-Possui uma migração custosa(e trabalhosa) em sistemas que são dependentes demais de Banco de Dados e cuja velocidade de acesso não é fator significante.
-Um badblock pode inutilizar todo o log(Problema facilmente contornável com um espelhamento -RAID1-ou um servidor extra para redundância dos dados).

Considerações Finais:
O Prevayler é uma ótima opção para sistemas que dependam de velocidade de acesso a dados,e cuja base de dados não seja maior do que a RAM,ou legada a um banco(seria custosa a migração se a velocidade de acesso não é um grande diferencial).Caso um projeto que necessite de persistência de objetos ainda não foi iniciado,não deve ser descartada uma adoção de um sistema prevalente,pois corretamente projetada,apresentará um custo-benefício altíssimo.

Notas/Glossário:
API:Application Program Interface(interface de programação de aplicações)é um sistema de rotinas(instruções) que permite que vários programas se liguem entre si.

Serialização/Objetos seriáveis:São objetos que possuem a capacidade de serem integralmente lidos/gravados de(ou para) um fluxo de bytes(para o disco).Em Java a serialização permite que objetos e tipos primitivos possam ser encapsulados em um fluxo de bytes apropriado para o seu tipo,trafegando por uma rede ou um sistema de arquivos,visando facilitar seu armazenamento em disco e uma posterior manipulação.

determinísticos:Dada uma entrada de dados esperada em um método de um objeto de negócio no sistema,uma saída esperada deve ser dada(os erros devem ser facilmente detectáveis).

framework:conjunto de classes reunidas para uma finalidade em comum,geralmente prover alguma funcionalidade ou estabelecer algum padrão de desenvolvimento.

snapshot:tirar uma “fotografia” do sistema,ou seja,salvar todos os objetos em disco para evitar a re-execução dos arquivos de log num sistema prevalente.Pode ser feita em uma máquina diferente da que se executa o sistema para prevenir quebras e salvar os dados do sistema sem precisar o servidor principal entrar em modo de leitura(read-only).

(1)-O Prevayler não armazena os objetos na RAM,quem faz isso é a máquina virtual Java,ele é apenas um meio para permitir essa persistência em memória.

Tá legalzim Cv?Algum erro,ou algo a destacar q esqueci???Isso é soh para uma visão geral…por isso não entrei em detalhes de implementação e talz…

cv1

Cara, eu nem li tudo (mesmo pq, hj eh sabado e eu ja to BASTANTE bebado), mas o Prevayler nao persiste os objetos em RAM… quem mantem os objetos na RAM é a JVM! :smiley:

No mais, dando uma olhada por cima e vendo 3 artigos, em vez de um (porra, dah um desconto, eu tomei uns bagulho forte hoje), tá tudo certo…

Ironlynx

Huuhauhauaha…valeu pela leitura Cv…

Eu sei…por isso que eu pûs aquele (1) como item explicativo…mas ele é um meio de permitir essa persistência-a vm é um fim-(vc não deve ter lido…)…hehehe essa cerveja guiness é duca hein…

Valeu pela atenção!
[]´ção!

geofrey

“Ironlynx”:
snapshot:tirar uma “fotografia” do sistema,ou seja,salvar todos os objetos em disco para evitar a re-execução dos arquivos de log num sistema prevalente.Pode ser feita em uma máquina diferente da que se executa o sistema para prevenir quebras e salvar os dados do sistema sem precisar o servidor principal entrar em modo de leitura(read-only).

Oi cara,
eu tomei a liberdade de ler seu trabalho também. até pq ele muito me interessa já que eu estou usando o prevayler no meu projeto final também.
Eu sei que já faz mais de um mês desde que vc escreveu isso, mas eu gostaria de saber como o Prevayler consegue fazer o snapshot sem entrar no modo read-only… eu postei essa dúvida aqui no guj mais ainda não obtive respostas e meu trabalho é pra ontem, se vc puder me ajudar agora é a hora! hehe valeu fui…

cv1

Ele nao “entra em modo read-only”, ele so bloqueia as novas transacoes enquanto ele estiver tirando o snapshot. Por isso a recomendacao de se tirar snapshots apenas quando conveniente (num periodo de baixa utilizacao, por exemplo).

Betinhum

Ironlynx

Iaê! 8) Rpz, tem como eu ajudar? Vc vai criar um site do projeto? Vai disponibilizar algo na internet? Provavelmente meu estágio curricular vai ser exatamente este aplicativo. Por aqui um cara(diz ele q é professor) fez um em VB, mas é stand-alone!!! A galera tem q ir no Colegiado pra fazer tudo… :cry: triste… E na época já se estudava a idéia dos terminais…

Ironlynx

Ih…desculpe não ter olhado aqui antes…toh ocupadasso…qquer coisa ICQ!
Conseguiu resolver o seu problema?(Pior sou eu q não toh conseguindo nem rodar o Prevayler2…soh roda o 1 Na minha máquina…PQP)
Ah,Jah pensou em usar um RAID?(0+1 no caso do seu problema)
Direcionar os snaps para um disco diferente do dos logs eh uma boa idéia…(Claro,uma solução profissa usaria no mínimo um Raptor ou um scsi)

Qquer ajuda eh sempre bem-vinda! :smiley:
Mas não será nada via Terminal…será SIA mesmo(Tudo Web…)
Em princípio,não será colocado nada na Net(no ar),soh será mostrado em modo OFF no dia de apresentação do projeto,mas havendo pedidos…
Cara,o meu maior problema será o html e javascript(I hate…),quero me limitar a parte “Java Puro”(Se eh q isso existe) e botar o meu companheiro de projeto para o design(Não sei pq ele não gostou muito da idéia…)

geofrey

Gostei! mas como eu faço isso?
é só trocar o diretório mesmo ou precisa fazer mais alguma coisa?

Ironlynx

Hum… não posso testar agora,mas talvez mudando algo no SnapshotManager funcione…(CêeeeVêeeeeeee!Helppp!)
Eu jah mudei os diretórios para o disquete uma vez…mas não isolei os snaps e os logs em dir diferentes…vou dar uma lida no Javadoc para ver isso…(jurei q tinha um construtor para isso…foi malz se não tiver…)
Mas talvez seja necessário que vc faça uma implementação para o configureReplicationClient e Server…
Uma perguntinha:Seu sistema eh crítico?

geofrey

“Ironlynx”:

Uma perguntinha:Seu sistema eh crítico?

Que nada! Minha idéia era apenas saber como funcionava o snapshot… mas ae vc veio com essa sugestão…
Mas não esquenta com isso pq essa funcionalidade não é necessária para minha aplicação que nada mais é do que transações prrocessando um grande volume de objetos com o objetivo de comparar a performance do prevayler com o banco sql server…

ao contrário do que eu imaginava o sql server foi 10 segundos mais rápido que o Prevayler nas transações de consulta e 5 minutos mais lento nas inserções!!!

Ironlynx

WTF?Explica esse seu bench…qual foi a quantidade de dados utilizada?

geofrey

Tá eu explico, mas antes diz o que é WTF?
eu fiz um for e inseri 121mil objetos num hashmap, depois passo esse hashmap por parametro para uma transação.
Fiz dois aplicativos um com prevayler e o outro com o sql server 2000.
Os testes mostraram que o Prevayler é muito mais rápido na inclusão dos dados, e apesar de ter sido um pouco mais lento na consulta, e também apesar de o Prevayler não se aplicar a sistemas com base de dados maior que a quantidade de RAM,a medida que a diferença de tamanho da base de dados para o tamanho da RAM diminui, eu acho que o Prevayler se torna mais rápido nas consultas em relação aos bancos de dados, pois a probabilidade de ocorrer IO quando o banco de dados for realizar a consulta cresce.
O que eu acho q aconteceu foi que no caso da aplicação utilizando o SQL Server 2000 via JDBC todos os dados a serem pesquisados estão nas páginas que estão na memória e por isso não ocorre acesso a disco. Isso elimina a vantagem que o Prevayler tem por manter todos os objetos na RAM.
Agora o que vc acha das minhas conclusões? tem sentido o que eu tô dizendo? ou eu viajei na maionese?
ah e só pra ficar registrado usei o win98 e tenho 256 de ram.

Ironlynx

What the Fuck!(Q porra eh essa?)

Ter ateh tem,mas existem outros aspectos importantes na hora de executar(e trabalhar) com um sistema prevalente.Alguns:O Windows faz swap em disco mesmo q vc não queira.Dah para botar um parâmetro(ConservativeSwapfileUsage=1 no seu system.ini)para usar toda a RAM antes de executar qquer paginação,mas desabilitá-la eh arriscado…ele(o windows)faz paginação independente da sua vontade(a menos q vc sete como falei),e com a sua RAM,invariavelmente seus dados serão trocados com os do disco!
Vc viu em MB qto de memória deu seu conjunto de dados?E antes de botá-lo em execução?Vc tem firewall?(Mais instâncias rodando…)
Geofrey,256MB para um sistema Prevalente eh muito fraco(a menos q seja Standalone),pois invariavelmente alguns serviços do windows usarão mais q isso na mem virtual…sua aplicação jamais estará sozinha!Lembre-se disso…
Minha conclusão eh:o Prevayler se mostrará mais rápido com mais memória!As otimizações do SQLServer são sentidas pq a mem deve tah ficando apertada para seu programa prevalente rodar…
Problema gozado q jah tive:
Usando Prevayler 1,eu criei uma malha de objetos(100mil)q sabia q daria um estouro(tava com kazaa,Norton…),mas mesmo assim não estourou!Ficou leeeerdo a inserção desses dados(houve um swap foda provavelmente),mas executou normalmente…demorando um ano para inserir…windows tem dessas merdas…
Veja o espaço livre para sua VM e o total dos seus objetos e compare!Eu jah fiquei esperando(na verdade forçando) "Out Of Memory Error"igual idiota…
Runtime.getRuntime().totalMemory() e freeMemory() neles! :wink:

Ironlynx

Hum…posso ter sido meio obscuro(melhor fazer um complemento!) então caso não saiba,swap é um arquivo de memória virtual.Como eh incomum um sistema ter vários GB de RAM,mesmo q ele disponha disso,o windows usa ele(descarregando coisas da memória RAM para o Swap, que fica localizado no HD)em operaçoes pesadas, o HD tem que ser acessado ao mesmo tempo que o Swap, pois o sistema estará carregando coisas do HD para a memória e descarregando coisas da memória para o Swap.Por isso sugeri 2 hd´s.Pois tendo 2 HDs (um para o sistema e outro para o Swap) se ganha muito mais desempenho, pois se apenas 1 HD tem que fazer as duas tarefas (ler e gravar) ao mesmo tempo demorará muito com 2 HDs independentes fazendo cada um sua tarefa (o HD de sistema lendo arquivos pra memória e o HD de Swap gravando coisas da memória pro Swap) o sistema ficará bem mais rápido!E tem tb o problema dos snaps,q no mesmo hd dos logs eh um problema… (hum…0+1? ou 0 e um hd extra para o swap?)

geofrey

Mas o swap só ocorre quando a RAM acaba, ae o windows simula uma parte do disco como memória ram, pelo menos é essa a idéia de swap que eu tenho, por isso o nome de memória virtual.
mas Ironlynx, aproveitando sua disposição, quando ocorre a tal outofmemoryerror (o que é muito comum comigo…) é pq a memória virtual também estorou? eu pensava que com o Prevayler o swap não tinha chance sequer de acontecer! Já ia falar merda na apresentação do meu trabalho :oops:
Quanto ao tamanho da minha base de dados eu não sei(fica tudo dentro de um hashmap, tem comando que retorne o tamanho que ele ocupa? ) mas quando executei as aplicações, antes eu dei um Ctrl+Alt+Del e sai fechando tudo só deixei mesmo o explorer, e o eclipse que é pesado pacas…
Valeu a ajuda!

Ironlynx

Leia direito o q eu postei…
E nem sempre é necessario acabar a mem disponivel para entrar a paginação(na verdade,muitas vezes ela não ocorre e ele eh ativado assim mesmo !), mas se vc não setar parâmetro algum(como ConservativeSwapfileUsage=1 q soh faz uso de mem virtual após término real da memória disponível),muitas vezes vc não saberá qdo ela acabou ou se há troca de dados com o sistema…a não ser direito pelos “soluços” de leitura excessiva de seu hard…ou seja,vc não tem controle do seu sistema!
Por outro lado,o swap ocorre qndo dados que estão sendo menos usados pelos seus programas são jogados nele(na verdade,isso eh um artifício
para jogá-los num meio de armazenamento mais lento sem uma queda grande de desempenho e a memória mais veloz(RAM) eh melhor aproveitada para dados mais utilizados).O win2000 eh um q utiliza “bem” o swap file(no sentido de muuito…).O swap pode ocorrer independente da RAM acabar realmente devido a exigência de alguns programas(q alocam memória abruptamente),deficiencias do gerenciador de tarefas do windows(muito comum!),e a necessidade de “troca” de dados q alguns programas fazem.Somente máquinas com pouca ram(ateh 256MB) se beneficiam realmente do swap.
Um sistema Prevalente profissional,deve rodar numa máquina com o swap limitado como descrevi(o q soh eh aconselhavel com um 1GB pra lah…),pois soh depois q TODA ram for utilizada eh q ele será executado.

Significa q o espaço para seus objetos alocado pela JVM foi pro saco!
Lembre-se,eh a VM q manipula a mem para vc não o Prevayler!E o espaço alocado para ela eh bem inferior(normalmente)q sua mem disponível na máquina.Geralmente setando um agressiveheap dah um jeito nisso…

E não ocorre(eu acho…).Pelo menos não por culpa do Prevayler!(Dah vm no caso…)
Mas vc pode garantir as demais instâncias rodando em paralelo dos seus programas e funções do Win?Logicamente uma aplicação profissional soh teria o windows puro+VM+prevayler+servidor+utensílios… nada de games,IDE´s…

só deixei mesmo o explorer, e o eclipse que é pesado pacas…

Soh deixou o Eclipse???O Eclipse eh um dos maiores “RAMEaters” q eu conheço!Jah esperou/trabalhou com ele umas 4horas ininterruptas?Percebeu alguma lerdeza ao ponto de ter q fechá-lo e iniciá-lo novamente?Vários aqui jah tiveram problema assim…se vc ainda não teve,vc tem sorte…

Vc não leu o q postei:

geofrey

“Ironlynx”:

Leia direito o q eu postei…

Foi mal cara… acho q o licor desse são joão me virou a cabeça…
valeu pelas dicas.
Agora que cheguei em casa vou revisar direito o que vc escreveu.

Criado 25 de fevereiro de 2004
Ultima resposta 26 de jun. de 2004
Respostas 26
Participantes 6