Não é possível obter o Glassfish 3.1.2.2 para usar algo diferente de jdbc / __ TimerService para o serviço de temporizador EJB

1

Estou tentando configurar um cluster Glassfish (1 DAS com um cluster que tem uma instância em execução em um nó ssh).

Aqui é onde eu estou:

  • DAS em execução
  • Cluster criado

    asadmin create-cluster cluster
    
  • Nó criado

    asadmin create-node-ssh --nodehost apphost --installdir /opt/glassfish3 node-apphost
    
  • Instância instalada e configurada

    asadmin create-instance --node node-apphost --cluster cluster cluster-instance-apphost
    

Quando tento iniciar a instância remota, obtenho essas exceções em server.log

[#|2013-02-05T12:42:28.603-0500|WARNING|glassfish3.1.2|javax.enterprise.system.container.ejb.com.sun.ejb.containers|_ThreadID=10;_ThreadName=Thread-2;|Cannot deploy or load EJBTimerService: 
java.lang.RuntimeException: javax.naming.NamingException: Lookup failed for 'jdbc/__TimerPool' in SerialContext[myEnv={com.sun.enterprise.connectors.jndisuffix=__pm, java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is javax.naming.NameNotFoundException: jdbc]
        at org.glassfish.

A instância é iniciada, mas a implantação do meu aplicativo falha com

Exception while loading the app : EJB Timer Service is not available

Tentei definir a propriedade de configuração configs.config.cluster-config.ejb-container.ejb-timer-service.timer-datasource como "jdbc / __ default" (depois de limpar o nó, até mesmo recriar o cluster ) como um teste, de acordo com os documentos do GF - embora neste momento eu tenha certeza de que não haverá uma conexão real com nenhum banco de dados remotamente acessível, pois não tenho um configurado - o ponto é, não importa o que eu faça ainda ver a instância remota tentando procurar "jdbc / __ TimerService" ..

Como faço para que minha instância remota use a fonte de dados timer definida em sua configuração de cluster?

    
por pgn 05.02.2013 / 19:13

1 resposta

1

No Guia de desenvolvimento de aplicativos do Oracle GlassFish Server 3.1

link

você pode ver esta linha:

Cuidado - Não use o recurso jdbc / __ TimerPool para temporizadores em ambientes GlassFish Server agrupados. Em vez disso, você deve usar um recurso JDBC personalizado ou o recurso padrão jdbc / __. Consulte as instruções abaixo, em Para implantar um temporizador EJB em um cluster. Consulte também Ativando o recurso padrão jdbc / __ em um ambiente em cluster no Guia de Administração do Oracle GlassFish Server 3.1.

    
por 15.08.2014 / 16:24