66: l_Freq number;
67: l_job_no number;
68: l_ChannelName varchar2(40);
69:
70: l_Status varchar2(30) := XDP_ADAPTER.pv_adminStatusCompleted;
71:
72: l_ErrorMsg VARCHAR2 (4000);
73: l_RetCode NUMBER := 0;
74:
84: 'BEGIN:p_request: '||p_request);
85: END IF;
86:
87: BEGIN
88: XDP_ADAPTER_CORE_DB.FetchAdapterAdminReqInfo(
89: p_RequestID => p_request,
90: p_RequestType => l_requestCode,
91: p_RequestDate => l_dummydate,
92: p_RequestedBy => l_User,
118: ', Job no.: '||l_job_no||
119: ', Channel name: '||l_ChannelName);
120: END IF;
121:
122: if l_requestCode = XDP_ADAPTER.pv_opSuspend then
123: -- dbms_output.put_line('suspending.. ');
124: XDP_ADAPTER.Suspend_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
125:
126: elsif l_requestCode = XDP_ADAPTER.pv_opConnect then
120: END IF;
121:
122: if l_requestCode = XDP_ADAPTER.pv_opSuspend then
123: -- dbms_output.put_line('suspending.. ');
124: XDP_ADAPTER.Suspend_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
125:
126: elsif l_requestCode = XDP_ADAPTER.pv_opConnect then
127: -- dbms_output.put_line('Connecting.. ');
128: XDP_ADAPTER.Connect_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
122: if l_requestCode = XDP_ADAPTER.pv_opSuspend then
123: -- dbms_output.put_line('suspending.. ');
124: XDP_ADAPTER.Suspend_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
125:
126: elsif l_requestCode = XDP_ADAPTER.pv_opConnect then
127: -- dbms_output.put_line('Connecting.. ');
128: XDP_ADAPTER.Connect_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
129:
130: elsif l_requestCode = XDP_ADAPTER.pv_opDisconnect then
124: XDP_ADAPTER.Suspend_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
125:
126: elsif l_requestCode = XDP_ADAPTER.pv_opConnect then
127: -- dbms_output.put_line('Connecting.. ');
128: XDP_ADAPTER.Connect_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
129:
130: elsif l_requestCode = XDP_ADAPTER.pv_opDisconnect then
131: -- dbms_output.put_line('Disconnecting.. ');
132: XDP_ADAPTER.Disconnect_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
126: elsif l_requestCode = XDP_ADAPTER.pv_opConnect then
127: -- dbms_output.put_line('Connecting.. ');
128: XDP_ADAPTER.Connect_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
129:
130: elsif l_requestCode = XDP_ADAPTER.pv_opDisconnect then
131: -- dbms_output.put_line('Disconnecting.. ');
132: XDP_ADAPTER.Disconnect_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
133:
134: elsif l_requestCode = XDP_ADAPTER.pv_opResume then
128: XDP_ADAPTER.Connect_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
129:
130: elsif l_requestCode = XDP_ADAPTER.pv_opDisconnect then
131: -- dbms_output.put_line('Disconnecting.. ');
132: XDP_ADAPTER.Disconnect_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
133:
134: elsif l_requestCode = XDP_ADAPTER.pv_opResume then
135: -- dbms_output.put_line('resuming.. ');
136: XDP_ADAPTER.Resume_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
130: elsif l_requestCode = XDP_ADAPTER.pv_opDisconnect then
131: -- dbms_output.put_line('Disconnecting.. ');
132: XDP_ADAPTER.Disconnect_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
133:
134: elsif l_requestCode = XDP_ADAPTER.pv_opResume then
135: -- dbms_output.put_line('resuming.. ');
136: XDP_ADAPTER.Resume_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
137: elsif (l_requestCode = XDP_ADAPTER.pv_opStop) then
138:
132: XDP_ADAPTER.Disconnect_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
133:
134: elsif l_requestCode = XDP_ADAPTER.pv_opResume then
135: -- dbms_output.put_line('resuming.. ');
136: XDP_ADAPTER.Resume_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
137: elsif (l_requestCode = XDP_ADAPTER.pv_opStop) then
138:
139: l_LockTimeout := XDP_ADAPTER_CORE_DB.GetLockTimeOut;
140:
133:
134: elsif l_requestCode = XDP_ADAPTER.pv_opResume then
135: -- dbms_output.put_line('resuming.. ');
136: XDP_ADAPTER.Resume_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
137: elsif (l_requestCode = XDP_ADAPTER.pv_opStop) then
138:
139: l_LockTimeout := XDP_ADAPTER_CORE_DB.GetLockTimeOut;
140:
141: if XDP_ADAPTER_CORE_DB.ObtainAdapterLock_Verify(
135: -- dbms_output.put_line('resuming.. ');
136: XDP_ADAPTER.Resume_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
137: elsif (l_requestCode = XDP_ADAPTER.pv_opStop) then
138:
139: l_LockTimeout := XDP_ADAPTER_CORE_DB.GetLockTimeOut;
140:
141: if XDP_ADAPTER_CORE_DB.ObtainAdapterLock_Verify(
142: p_ChannelName => l_ChannelName,
143: p_Timeout => l_LockTimeout) = 'N' then
137: elsif (l_requestCode = XDP_ADAPTER.pv_opStop) then
138:
139: l_LockTimeout := XDP_ADAPTER_CORE_DB.GetLockTimeOut;
140:
141: if XDP_ADAPTER_CORE_DB.ObtainAdapterLock_Verify(
142: p_ChannelName => l_ChannelName,
143: p_Timeout => l_LockTimeout) = 'N' then
144:
145: l_RetCode := XDP_ADAPTER.pv_retAdapterCannotLock;
141: if XDP_ADAPTER_CORE_DB.ObtainAdapterLock_Verify(
142: p_ChannelName => l_ChannelName,
143: p_Timeout => l_LockTimeout) = 'N' then
144:
145: l_RetCode := XDP_ADAPTER.pv_retAdapterCannotLock;
146:
147: -- Could get the lock after 1 HOUR, continue
148: -- Following operation will also not get lock
149: -- and the logic will flow.
154: END IF;
155: end if;
156:
157: -- Special case, we donot want this to be cyclic
158: if (l_RetCode <> XDP_ADAPTER.pv_retAdapterCannotLock) then
159: -- dbms_output.put_line('Stopping.. ');
160: XDP_ADAPTER.Stop_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
161: -- Release the lock
162: l_Status := XDP_ADAPTER_CORE_DB.ReleaseAdapterLock(
156:
157: -- Special case, we donot want this to be cyclic
158: if (l_RetCode <> XDP_ADAPTER.pv_retAdapterCannotLock) then
159: -- dbms_output.put_line('Stopping.. ');
160: XDP_ADAPTER.Stop_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
161: -- Release the lock
162: l_Status := XDP_ADAPTER_CORE_DB.ReleaseAdapterLock(
163: p_ChannelName => l_ChannelName);
164: END IF;
158: if (l_RetCode <> XDP_ADAPTER.pv_retAdapterCannotLock) then
159: -- dbms_output.put_line('Stopping.. ');
160: XDP_ADAPTER.Stop_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
161: -- Release the lock
162: l_Status := XDP_ADAPTER_CORE_DB.ReleaseAdapterLock(
163: p_ChannelName => l_ChannelName);
164: END IF;
165:
166: elsif l_requestCode = XDP_ADAPTER.pv_opStartup then
162: l_Status := XDP_ADAPTER_CORE_DB.ReleaseAdapterLock(
163: p_ChannelName => l_ChannelName);
164: END IF;
165:
166: elsif l_requestCode = XDP_ADAPTER.pv_opStartup then
167: -- dbms_output.put_line('Starting.. ');
168: XDP_ADAPTER.Start_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
169:
170: elsif l_requestCode = XDP_ADAPTER.pv_opVerify then
164: END IF;
165:
166: elsif l_requestCode = XDP_ADAPTER.pv_opStartup then
167: -- dbms_output.put_line('Starting.. ');
168: XDP_ADAPTER.Start_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
169:
170: elsif l_requestCode = XDP_ADAPTER.pv_opVerify then
171: -- dbms_output.put_line('Verifying.. ');
172: XDP_ADAPTER.Verify_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
166: elsif l_requestCode = XDP_ADAPTER.pv_opStartup then
167: -- dbms_output.put_line('Starting.. ');
168: XDP_ADAPTER.Start_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
169:
170: elsif l_requestCode = XDP_ADAPTER.pv_opVerify then
171: -- dbms_output.put_line('Verifying.. ');
172: XDP_ADAPTER.Verify_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
173:
174: -- elsif l_requestCode = XDP_ADAPTER.pv_opFtpFile then
168: XDP_ADAPTER.Start_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
169:
170: elsif l_requestCode = XDP_ADAPTER.pv_opVerify then
171: -- dbms_output.put_line('Verifying.. ');
172: XDP_ADAPTER.Verify_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
173:
174: -- elsif l_requestCode = XDP_ADAPTER.pv_opFtpFile then
175: else
176: -- dbms_output.put_line('Generic control operation.. ');
170: elsif l_requestCode = XDP_ADAPTER.pv_opVerify then
171: -- dbms_output.put_line('Verifying.. ');
172: XDP_ADAPTER.Verify_Adapter(l_ChannelName, l_RetCode, l_ErrorMsg);
173:
174: -- elsif l_requestCode = XDP_ADAPTER.pv_opFtpFile then
175: else
176: -- dbms_output.put_line('Generic control operation.. ');
177: -- TODO What about parameters?
178: XDP_ADAPTER.Generic_Operation (
174: -- elsif l_requestCode = XDP_ADAPTER.pv_opFtpFile then
175: else
176: -- dbms_output.put_line('Generic control operation.. ');
177: -- TODO What about parameters?
178: XDP_ADAPTER.Generic_Operation (
179: l_ChannelName, l_requestCode, '',
180: l_RetCode, l_ErrorMsg);
181: end if;
182:
184: FND_LOG.STRING (FND_LOG.LEVEL_STATEMENT, 'XDP_CRON_UTIL.EXECUTE_ADAPTER_ADMIN',
185: 'After adapter operation, Return code: '||l_RetCode);
186: END IF;
187:
188: l_Status := XDP_ADAPTER.pv_adminStatusCompleted;
189:
190: if l_RetCode = XDP_ADAPTER.pv_retAdapterInvalidState or
191: l_RetCode = XDP_ADAPTER.pv_retAdapterCannotLock then
192: -- SKIPPED
186: END IF;
187:
188: l_Status := XDP_ADAPTER.pv_adminStatusCompleted;
189:
190: if l_RetCode = XDP_ADAPTER.pv_retAdapterInvalidState or
191: l_RetCode = XDP_ADAPTER.pv_retAdapterCannotLock then
192: -- SKIPPED
193: l_Status := XDP_ADAPTER.pv_adminStatusSkipped;
194: elsif l_RetCode <> 0 then
187:
188: l_Status := XDP_ADAPTER.pv_adminStatusCompleted;
189:
190: if l_RetCode = XDP_ADAPTER.pv_retAdapterInvalidState or
191: l_RetCode = XDP_ADAPTER.pv_retAdapterCannotLock then
192: -- SKIPPED
193: l_Status := XDP_ADAPTER.pv_adminStatusSkipped;
194: elsif l_RetCode <> 0 then
195: -- ERRORED cases are:
189:
190: if l_RetCode = XDP_ADAPTER.pv_retAdapterInvalidState or
191: l_RetCode = XDP_ADAPTER.pv_retAdapterCannotLock then
192: -- SKIPPED
193: l_Status := XDP_ADAPTER.pv_adminStatusSkipped;
194: elsif l_RetCode <> 0 then
195: -- ERRORED cases are:
196: -- pv_retAdapterCtrlNotRunning
197: -- pv_retAdapterAbnormalExit, will not happen for pv_opStart
195: -- ERRORED cases are:
196: -- pv_retAdapterCtrlNotRunning
197: -- pv_retAdapterAbnormalExit, will not happen for pv_opStart
198: -- when other errors
199: l_Status := XDP_ADAPTER.pv_adminStatusErrored;
200: end if;
201:
202: if l_Freq is null then
203:
207: 'Frequency is null, removing job');
208: END IF;
209: -- dbms_output.put_line('No Freq found... updating req');
210:
211: XDP_ADAPTER.Delete_Admin_Request (
212: p_request, l_RetCode, l_ErrorMsg);
213: -- Donot care for l_RetCode
214: end if;
215:
217: FND_LOG.STRING (FND_LOG.LEVEL_STATEMENT, 'XDP_CRON_UTIL.EXECUTE_ADAPTER_ADMIN',
218: 'Request audited with status: '||l_Status);
219: END IF;
220:
221: XDP_ADAPTER_CORE_DB.Audit_Adapter_Admin_Request (
222: p_RequestID => p_request,
223: p_RequestType => l_requestCode,
224: p_RequestDate => l_dummydate,
225: p_RequestedBy => l_User,
231: commit;
232:
233: EXCEPTION
234: WHEN OTHERS THEN
235: -- Can come here only because of some SQL error in XDP_ADAPTER_CORE_DB.Audit_Adapter_Admin_Request
236: -- Still we need to commit;
237: IF( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN -- Fix: 4256771, dbhagat, 28 Apr 05
238: FND_LOG.STRING (FND_LOG.LEVEL_ERROR, 'XDP_CRON_UTIL.EXECUTE_ADAPTER_ADMIN',
239: 'Unhandled error, SQLCODE: '||SQLCODE);
237: IF( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN -- Fix: 4256771, dbhagat, 28 Apr 05
238: FND_LOG.STRING (FND_LOG.LEVEL_ERROR, 'XDP_CRON_UTIL.EXECUTE_ADAPTER_ADMIN',
239: 'Unhandled error, SQLCODE: '||SQLCODE);
240: END IF;
241: l_Status := XDP_ADAPTER_CORE_DB.ReleaseAdapterLock(p_ChannelName => l_ChannelName);
242: commit;
243:
244: END Execute_Adapter_Admin;
245: