reading a Channel's Dead Event Store setting

Hi,

I know I’am able to create a Channel with a Dead Event Store by setting its channel attributes with com.pcbsys.nirvana.client.nChannelAttributes.setDeadEventHandler

However I’m not able to find any direct counterpart to get the Dead Event Store settings from an existing Channel!

Does anyone know if there is an indirect way to get this (through the Admin API or other)?

I must be possible as the Enterprise Manager gives that information directly.

(checked docs from 9.9, 9.12 and 10.1).

Best Regards,

1 Like

You could look into EM to see what APIs it uses.

You have to use the nAdmin API, this information is not available on the client API:

nLeafNode com.pcbsys.nirvana.nAdminAPI.nLeafNode.findDeadEventStore()


import com.wm.app.b2b.server.ServiceException;
import com.pcbsys.nirvana.client.nIllegalArgumentException;
import com.pcbsys.nirvana.client.nSessionAttributes;
import com.pcbsys.nirvana.nAdminAPI.nAdminIllegalArgumentException;
import com.pcbsys.nirvana.nAdminAPI.nLeafNode;
import com.pcbsys.nirvana.nAdminAPI.nRealmNode;

public static final void getChannelInfo(IData pipeline) throws ServiceException
    {
    	nRealmNode             nrm = null; 
    	nLeafNode             leaf = null;
    	nLeafNode             dsel = null;
    	
    	IDataCursor pipelineInCursor = pipeline.getCursor();
    	    String  realm = IDataUtil
    	                        .getString(pipelineInCursor, "realm" );
    	    String  name  = IDataUtil
    	                        .getString(pipelineInCursor, "channel" );
    	pipelineInCursor.destroy();
    	
    	try
    	{
    	    nrm = new nRealmNode(new nSessionAttributes( realm ));
    	    nrm.waitForEntireNameSpace(1000);
    	    leaf = (nLeafNode) nrm.findNode(name);
    	    dsel = leaf.findDeadEventStore();
    	    
    	}
    	catch (nIllegalArgumentException 
    	       | nAdminIllegalArgumentException e)
    	{ throw new ServiceException(e); }
    	catch (Exception e) { throw new ServiceException(e); }
    	
    	IDataCursor pipelineOutCursor = pipeline.getCursor();     
    	    if (dsel != null)
    	    {
    	        IDataUtil.put( pipelineOutCursor, 
    	            "deadEventStore", 
    	            String.valueOf(dsel.getAbsolutePath()));
    	    }
    	pipelineOutCursor.destroy();
    	
    	
    }
1 Like