When a JDBC sender channel polls, it sets a lock in the enqueue service (SCS instance).
With a crash, these locks will be left hanging and the channel will not poll until the lock is removed.
To get the channel to poll again, follow this process:
1. Stop the channel
2. Go to Visual Admin --> Locking Adapter --> Display locks tab and refesh the locks view.
3. Select the existing (hanging) enqueue lock with JDBC (The lock has $XIDBAD.JDBC2XI and channel ID in tis name.
The channel ID can be determined from <Path to server node>/log/services/com.sap.aii.adapter.jdbc.svc)
4. Delete the lock.
5. Start the channel
The problem can be avoided by setting 'taskTimeout' parameter in the channel.
When the channel sets a lock, it passes the value of this parameter to the enqueue service and the enqueue service will not hold this lock longer than this time.
If the channel is not polling after a connectivity problem (ex: the database server polled by the sender channel crashed and has come up later), check the scheduler.
You can call the scheduler URL http://<host>:<port>/AdapterFramework/scheduler/scheduler.jsp.
If you do not see the channel listed in the schedule, it is likely that there is a bug in the scheduler.
To get the channel to poll again deactivate and activate it. Check SAP note 1483974 to fix the bug.
If you find that the channel is hanging while connecting or executing SQL statement on an Oracle database, you need to deactivate and activate the channel. If there are message processed by receiver channel stuck in DLNG status, restart Messaging System service. To avoid the problem, you can set connection timeout driver:oracle.net.CONNECT_TIMEOUT or read time out driver:oracle.jdbc.ReadTimeout. Both the parameters are defined in ms.