Executar o código Java no nó condutor (DataStage)
O estágio Java™ Integration suporta a execução de código Java no nó condutor durante a inicialização e finalização de estágios.
setIsRunOnConductor
da classe Capabilities
. Durante a inicialização do estágio, a classe Processor
chama os métodos a seguir:getCapabilities()
validateConfiguration()
initialize()
Processor
são chamados nos cenários a seguir:- Se o método
validateConfiguration
retornar false, o métodogetConfigurationErrors
será chamado. - Se a propagação da coluna de tempo de execução estiver ativada em um link de saída e o método
getBeanForOutput
for implementado para retornar o objeto JavaBean, os métodos a seguir da classeProcessor
serão chamados durante a inicialização:getCapabilities()
validateConfiguration()
getBeanForOutput()
getAdditionalOutputColumns()
- Se a capacidade que executa de seu código Java no nó do condutor e propagação da coluna de tempo de execução forem ativadas em pelo menos um link de saída associado ao objeto JavaBean , então os métodos a seguir da classe
Processor
são chamados na ordem especificada durante a inicialização. O métodovalidateConfiguration
é chamado duas vezes no nó do condutor.getCapabilities()
validateConfiguration()
getBeanForOutput()
getAdditionalOutputColumns()
validateConfiguration()
initialize()
Durante a finalização de um estágio, é chamado o método terminate()
da classe Processor
.
O código Java de exemplo a seguir é usado para configurar a capacidade de execução dos métodos da classe Processor
no nó do condutor para inicialização e finalização do estágio.
public Capabilities getCapabilities()
{
Capabilities capabilities = new Capabilities();
capabilities.setIsRunOnConductor(true);
return capabilities;
}
O código Java verifica o valor de retorno do método getNodeNumber
da classe Configuration
para identificar se o método é chamado no nó do condutor ou nós do player. Se o valor de retorno for-1o método roda no nó do condutor. Se o valor de retorno for qualquer outro número, por exemplo 0 ou 1, o método será chamado nos nós do reprodutor.
No exemplo a seguir, a classe Processor
concluirá processos de inicialização e finalização no nó do condutor e nos nós do reprodutor.
private int m_nodeID = -1;
public boolean validateConfiguration(Configuration configuration, boolean isRuntime) throws Exception
{
...
m_nodeID = configuration.getNodeNumber();
...
return true;
}
public void initialize() throws Exception
{
if (m_nodeID == -1) // On Conductor
{
// Perform any initialization process on the conductor node
}
else
{
// Perform any initialization process on each player node
}
}
public void terminate(boolean isAborted) throws Exception
{
if (m_nodeID == -1) // On Conductor
{
// Perform any termination process on the connector node
}
else
{
// Perform any termination process on each player node
}
}