Executando o código Java no nó condutor ( DataStage )
O Java™ Integration stage e suporta a execução de código Java no nó condutor durante a inicialização e o encerramento das etapas.
setIsRunOnConductor método da Capabilities classe. 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
validateConfigurationretornar false, o métodogetConfigurationErrorsserá chamado. - Se a propagação da coluna de tempo de execução estiver ativada em um link de saída e o método
getBeanForOutputfor implementado para retornar o objeto JavaBean, os métodos a seguir da classeProcessorserão chamados durante a inicialização:getCapabilities()validateConfiguration()getBeanForOutput()getAdditionalOutputColumns()
- Se a capacidade que executa seu código Java no nó condutor e a propagação da coluna de tempo de execução estiverem habilitadas em pelo menos um link de saída associado ao objeto ` JavaBean `, os seguintes métodos da
Processorclasse serã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 a seguir é usado para definir a capacidade de executar os métodos da Processor classe no nó condutor para inicialização e encerramento 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 getNodeNumber método da Configuration classe para identificar se o método é chamado no nó condutor ou nos nós dos jogadores. Se o valor de retorno for-1o método é executado no nó 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
}
}