1: PACKAGE BODY XDP_ADAPTER_CORE AS
2: /* $Header: XDPACORB.pls 120.1 2005/06/08 23:34:53 appldev $ */
3:
4:
5: Function IsOperationValid(p_Operation in varchar2,
19: is
20:
21: begin
22: if p_CleanupPipe = 'Y' then
23: XDP_ADAPTER_CORE_PIPE.CleanupPipe(p_ChannelName => SendSync.p_ChannelName,
24: p_Cleanreturn => 'Y');
25: end if;
26:
27: SendControlCommand(p_ChannelName => SendSync.p_ChannelName,
36: is
37: RespXML varchar2(4000);
38: begin
39:
40: RespXML := XDP_ADAPTER_CORE_XML.ConstructRespXML(p_Status => SendResponse.p_Status,
41: p_RespData => SendResponse.p_Message);
42:
43: SendMessage(p_ChannelName => SendResponse.p_ChannelName, p_Command => RespXML);
44:
49:
50: is
51: AckXML varchar2(4000);
52: begin
53: AckXML := XDP_ADAPTER_CORE_XML.ConstructRespXML(p_Status => 'ACK',
54: p_RespData => NULL);
55:
56: SendMessage(p_ChannelName => SendAck.p_ChannelName, p_Command => AckXML);
57:
66: ControlCommandXML varchar2(4000);
67: begin
68:
69: ControlCommandXML :=
70: XDP_ADAPTER_CORE_XML.ConstructControlXML
71: (p_Operation => SendControlCommand.p_Operation,
72: p_OpData => SendControlCommand.p_OpData);
73:
74: TalkToAdapter ( p_ChannelName => SendControlCommand.p_ChannelName,
86:
87: begin
88:
89: ControlCommandXML :=
90: XDP_ADAPTER_CORE_XML.ConstructControlXML
91: (p_Operation => SendControlCommand.p_Operation,
92: p_OpData => SendControlCommand.p_OpData);
93:
94: TalkToAdapter( p_ChannelName => SendControlCommand.p_ChannelName,
107: l_ReturnChannel varchar2(40);
108: l_RespXML varchar2(4000);
109: begin
110:
111: XDP_ADAPTER_CORE_PIPE.CleanupPipe(p_ChannelName => p_ChannelName);
112:
113: -- dbms_output.put_line('In ProcessControlCommand');
114: -- dbms_output.put_line('Before SendControlCommand, p_ChannelName:' || p_ChannelName);
115:
117: p_Operation => ProcessControlCommand.p_Operation,
118: p_OpData => ProcessControlCommand.p_OpData,
119: p_Timeout => l_Timeout);
120:
121: l_ReturnChannel := XDP_ADAPTER_CORE_PIPE.GetReturnChannelName
122: (p_ChannelName => ProcessControlCommand.p_ChannelName);
123:
124: -- dbms_output.put_line('After SendControlCommand, l_ReturnChannel:' || l_ReturnChannel);
125: -- dbms_output.put_line('After SendControlCommand, Message timeout: ' || l_Timeout);
133: -- dbms_output.put_line('Before SendAck');
134:
135: SendAck(p_ChannelName => ProcessControlCommand.p_ChannelName);
136:
137: p_Status := XDP_ADAPTER_CORE_XML.DecodeMessage(p_WhattoDecode => 'STATUS',
138: p_XMLMessage => l_RespXML);
139:
140: p_ErrorMessage := XDP_ADAPTER_CORE_XML.DecodeMessage(p_WhattoDecode => 'DATA',
141: p_XMLMessage => l_RespXML);
136:
137: p_Status := XDP_ADAPTER_CORE_XML.DecodeMessage(p_WhattoDecode => 'STATUS',
138: p_XMLMessage => l_RespXML);
139:
140: p_ErrorMessage := XDP_ADAPTER_CORE_XML.DecodeMessage(p_WhattoDecode => 'DATA',
141: p_XMLMessage => l_RespXML);
142:
143: if (p_Operation <> XDP_ADAPTER.pv_opStop) and
144: (p_Status <> pv_AdapterResponseFailure) then
139:
140: p_ErrorMessage := XDP_ADAPTER_CORE_XML.DecodeMessage(p_WhattoDecode => 'DATA',
141: p_XMLMessage => l_RespXML);
142:
143: if (p_Operation <> XDP_ADAPTER.pv_opStop) and
144: (p_Status <> pv_AdapterResponseFailure) then
145: SendSync(p_ChannelName => ProcessControlCommand.p_ChannelName,
146: p_CleanupPipe => 'N');
147: end if;
180: begin
181: SendMessage(p_ChannelName => TalkToAdapter.p_ChannelName,
182: p_Command => TalkToAdapter.p_Command);
183:
184: ReturnChannelName := XDP_ADAPTER_CORE_PIPE.GetReturnChannelName
185: (p_ChannelName => TalkToAdapter.p_ChannelName);
186:
187: ReceiveAck(p_ChannelName => ReturnChannelName,
188: p_Status => Status,
203: p_Response in varchar2)
204: is
205: ApplXML varchar2(4000);
206: begin
207: ApplXML := XDP_ADAPTER_CORE_XML.ConstructSendXML(
208: p_Command => SendApplicationMessage.p_Command,
209: p_Response => SendApplicationMessage.p_Response);
210:
211: TalkToAdapter(p_ChannelName => SendApplicationMessage.p_ChannelName,
218: p_Command in varchar2)
219: is
220: begin
221:
222: XDP_ADAPTER_CORE_PIPE.SendPipedMessage(p_ChannelName => SendMessage.p_ChannelName,
223: p_Message => SendMessage.p_Command);
224:
225: end SendMessage;
226:
248: PipedMessage varchar2(4000);
249: l_Timeout varchar2(20);
250: begin
251:
252: XDP_ADAPTER_CORE_PIPE.ReceivePipedMessage(p_ChannelName => ReceiveAck.p_ChannelName,
253: p_Timeout => NULL,
254: p_ErrorCode => ReturnCode,
255: p_Message => PipedMessage);
256:
256:
257: if ReturnCode = 0 then
258: if PipedMessage is not null then
259:
260: p_Status := XDP_ADAPTER_CORE_XML.DecodeMessage
261: (p_WhattoDecode => 'STATUS',
262: p_XMLMessage => PipedMessage);
263:
264: p_ErrorMessage := XDP_ADAPTER_CORE_XML.DecodeMessage
260: p_Status := XDP_ADAPTER_CORE_XML.DecodeMessage
261: (p_WhattoDecode => 'STATUS',
262: p_XMLMessage => PipedMessage);
263:
264: p_ErrorMessage := XDP_ADAPTER_CORE_XML.DecodeMessage
265: (p_WhattoDecode => 'DATA',
266: p_XMLMessage => PipedMessage);
267:
268: l_Timeout := XDP_ADAPTER_CORE_XML.DecodeMessage
264: p_ErrorMessage := XDP_ADAPTER_CORE_XML.DecodeMessage
265: (p_WhattoDecode => 'DATA',
266: p_XMLMessage => PipedMessage);
267:
268: l_Timeout := XDP_ADAPTER_CORE_XML.DecodeMessage
269: (p_WhattoDecode => 'TIMEOUT',
270: p_XMLMessage => PipedMessage);
271:
272: if l_Timeout is not null then
295: is
296: ReturnCode number := 0;
297: begin
298:
299: XDP_ADAPTER_CORE_PIPE.ReceivePipedMessage
300: (p_ChannelName => WaitForMessage.p_ChannelName,
301: p_Timeout => WaitForMessage.p_Timeout,
302: p_ErrorCode => ReturnCode,
303: p_Message => p_ResponseMessage);
317: p_CurrentStatus OUT NOCOPY varchar2) return boolean
318: is
319: l_isValid boolean := false;
320: begin
321: p_CurrentStatus := XDP_ADAPTER_CORE_DB.GetCurrentAdapterStatus
322: (VerifyAdapterOperation.p_ChannelName);
323:
324: if (IsOperationValid(VerifyAdapterOperation.p_Operation, p_CurrentStatus) ) then
325: l_isValid := true;
334: p_CurrentAdapterStatus in varchar2) return boolean
335: is
336: l_isValid boolean := false;
337: begin
338: if p_Operation = XDP_ADAPTER.pv_opStartup then
339: -- if p_CurrentAdapterStatus = XDP_ADAPTER.pv_statusStopped then
340:
341: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusStopped,
342: XDP_ADAPTER.pv_statusStoppedError,
335: is
336: l_isValid boolean := false;
337: begin
338: if p_Operation = XDP_ADAPTER.pv_opStartup then
339: -- if p_CurrentAdapterStatus = XDP_ADAPTER.pv_statusStopped then
340:
341: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusStopped,
342: XDP_ADAPTER.pv_statusStoppedError,
343: XDP_ADAPTER.pv_statusTerminated,
337: begin
338: if p_Operation = XDP_ADAPTER.pv_opStartup then
339: -- if p_CurrentAdapterStatus = XDP_ADAPTER.pv_statusStopped then
340:
341: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusStopped,
342: XDP_ADAPTER.pv_statusStoppedError,
343: XDP_ADAPTER.pv_statusTerminated,
344: XDP_ADAPTER.pv_statusDeactivated,
345: XDP_ADAPTER.pv_statusDeactivatedSystem) then
338: if p_Operation = XDP_ADAPTER.pv_opStartup then
339: -- if p_CurrentAdapterStatus = XDP_ADAPTER.pv_statusStopped then
340:
341: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusStopped,
342: XDP_ADAPTER.pv_statusStoppedError,
343: XDP_ADAPTER.pv_statusTerminated,
344: XDP_ADAPTER.pv_statusDeactivated,
345: XDP_ADAPTER.pv_statusDeactivatedSystem) then
346: l_isValid := true;
339: -- if p_CurrentAdapterStatus = XDP_ADAPTER.pv_statusStopped then
340:
341: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusStopped,
342: XDP_ADAPTER.pv_statusStoppedError,
343: XDP_ADAPTER.pv_statusTerminated,
344: XDP_ADAPTER.pv_statusDeactivated,
345: XDP_ADAPTER.pv_statusDeactivatedSystem) then
346: l_isValid := true;
347: else
340:
341: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusStopped,
342: XDP_ADAPTER.pv_statusStoppedError,
343: XDP_ADAPTER.pv_statusTerminated,
344: XDP_ADAPTER.pv_statusDeactivated,
345: XDP_ADAPTER.pv_statusDeactivatedSystem) then
346: l_isValid := true;
347: else
348: l_isValid := false;
341: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusStopped,
342: XDP_ADAPTER.pv_statusStoppedError,
343: XDP_ADAPTER.pv_statusTerminated,
344: XDP_ADAPTER.pv_statusDeactivated,
345: XDP_ADAPTER.pv_statusDeactivatedSystem) then
346: l_isValid := true;
347: else
348: l_isValid := false;
349: end if;
347: else
348: l_isValid := false;
349: end if;
350:
351: elsif p_Operation = XDP_ADAPTER.pv_opStop then
352: if p_CurrentAdapterStatus not in (XDP_ADAPTER.pv_statusStopped,
353: XDP_ADAPTER.pv_StatusStoppedError,
354: XDP_ADAPTER.pv_StatusTerminated,
355: XDP_ADAPTER.pv_statusNotAvailable,
348: l_isValid := false;
349: end if;
350:
351: elsif p_Operation = XDP_ADAPTER.pv_opStop then
352: if p_CurrentAdapterStatus not in (XDP_ADAPTER.pv_statusStopped,
353: XDP_ADAPTER.pv_StatusStoppedError,
354: XDP_ADAPTER.pv_StatusTerminated,
355: XDP_ADAPTER.pv_statusNotAvailable,
356: XDP_ADAPTER.pv_statusDeactivated,
349: end if;
350:
351: elsif p_Operation = XDP_ADAPTER.pv_opStop then
352: if p_CurrentAdapterStatus not in (XDP_ADAPTER.pv_statusStopped,
353: XDP_ADAPTER.pv_StatusStoppedError,
354: XDP_ADAPTER.pv_StatusTerminated,
355: XDP_ADAPTER.pv_statusNotAvailable,
356: XDP_ADAPTER.pv_statusDeactivated,
357: XDP_ADAPTER.pv_statusDeactivatedSystem) then
350:
351: elsif p_Operation = XDP_ADAPTER.pv_opStop then
352: if p_CurrentAdapterStatus not in (XDP_ADAPTER.pv_statusStopped,
353: XDP_ADAPTER.pv_StatusStoppedError,
354: XDP_ADAPTER.pv_StatusTerminated,
355: XDP_ADAPTER.pv_statusNotAvailable,
356: XDP_ADAPTER.pv_statusDeactivated,
357: XDP_ADAPTER.pv_statusDeactivatedSystem) then
358: l_isValid := true;
351: elsif p_Operation = XDP_ADAPTER.pv_opStop then
352: if p_CurrentAdapterStatus not in (XDP_ADAPTER.pv_statusStopped,
353: XDP_ADAPTER.pv_StatusStoppedError,
354: XDP_ADAPTER.pv_StatusTerminated,
355: XDP_ADAPTER.pv_statusNotAvailable,
356: XDP_ADAPTER.pv_statusDeactivated,
357: XDP_ADAPTER.pv_statusDeactivatedSystem) then
358: l_isValid := true;
359: else
352: if p_CurrentAdapterStatus not in (XDP_ADAPTER.pv_statusStopped,
353: XDP_ADAPTER.pv_StatusStoppedError,
354: XDP_ADAPTER.pv_StatusTerminated,
355: XDP_ADAPTER.pv_statusNotAvailable,
356: XDP_ADAPTER.pv_statusDeactivated,
357: XDP_ADAPTER.pv_statusDeactivatedSystem) then
358: l_isValid := true;
359: else
360: l_isValid := false;
353: XDP_ADAPTER.pv_StatusStoppedError,
354: XDP_ADAPTER.pv_StatusTerminated,
355: XDP_ADAPTER.pv_statusNotAvailable,
356: XDP_ADAPTER.pv_statusDeactivated,
357: XDP_ADAPTER.pv_statusDeactivatedSystem) then
358: l_isValid := true;
359: else
360: l_isValid := false;
361: end if;
359: else
360: l_isValid := false;
361: end if;
362:
363: elsif p_Operation = XDP_ADAPTER.pv_opConnect then
364: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusDisconnected,
365: XDP_ADAPTER.pv_statusSessionLost) then
366: l_isValid := true;
367: else
360: l_isValid := false;
361: end if;
362:
363: elsif p_Operation = XDP_ADAPTER.pv_opConnect then
364: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusDisconnected,
365: XDP_ADAPTER.pv_statusSessionLost) then
366: l_isValid := true;
367: else
368: l_isValid := false;
361: end if;
362:
363: elsif p_Operation = XDP_ADAPTER.pv_opConnect then
364: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusDisconnected,
365: XDP_ADAPTER.pv_statusSessionLost) then
366: l_isValid := true;
367: else
368: l_isValid := false;
369: end if;
367: else
368: l_isValid := false;
369: end if;
370:
371: elsif p_Operation = XDP_ADAPTER.pv_opDisconnect then
372: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusRunning,
373: XDP_ADAPTER.pv_statusSuspended) then
374: l_isValid := true;
375: else
368: l_isValid := false;
369: end if;
370:
371: elsif p_Operation = XDP_ADAPTER.pv_opDisconnect then
372: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusRunning,
373: XDP_ADAPTER.pv_statusSuspended) then
374: l_isValid := true;
375: else
376: l_isValid := false;
369: end if;
370:
371: elsif p_Operation = XDP_ADAPTER.pv_opDisconnect then
372: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusRunning,
373: XDP_ADAPTER.pv_statusSuspended) then
374: l_isValid := true;
375: else
376: l_isValid := false;
377: end if;
375: else
376: l_isValid := false;
377: end if;
378:
379: elsif p_Operation = XDP_ADAPTER.pv_opSuspend then
380: if p_CurrentAdapterStatus = XDP_ADAPTER.pv_statusRunning then
381: l_isValid := true;
382: else
383: l_isValid := false;
376: l_isValid := false;
377: end if;
378:
379: elsif p_Operation = XDP_ADAPTER.pv_opSuspend then
380: if p_CurrentAdapterStatus = XDP_ADAPTER.pv_statusRunning then
381: l_isValid := true;
382: else
383: l_isValid := false;
384: end if;
382: else
383: l_isValid := false;
384: end if;
385:
386: elsif p_Operation = XDP_ADAPTER.pv_opResume then
387: if p_CurrentAdapterStatus = XDP_ADAPTER.pv_statusSuspended then
388: l_isValid := true;
389: else
390: l_isValid := false;
383: l_isValid := false;
384: end if;
385:
386: elsif p_Operation = XDP_ADAPTER.pv_opResume then
387: if p_CurrentAdapterStatus = XDP_ADAPTER.pv_statusSuspended then
388: l_isValid := true;
389: else
390: l_isValid := false;
391: end if;
389: else
390: l_isValid := false;
391: end if;
392:
393: elsif p_Operation = XDP_ADAPTER.pv_opVerify then
394: if p_CurrentAdapterStatus not in (XDP_ADAPTER.pv_statusStopped,
395: XDP_ADAPTER.pv_StatusStoppedError,
396: XDP_ADAPTER.pv_StatusTerminated,
397: XDP_ADAPTER.pv_statusNotAvailable,
390: l_isValid := false;
391: end if;
392:
393: elsif p_Operation = XDP_ADAPTER.pv_opVerify then
394: if p_CurrentAdapterStatus not in (XDP_ADAPTER.pv_statusStopped,
395: XDP_ADAPTER.pv_StatusStoppedError,
396: XDP_ADAPTER.pv_StatusTerminated,
397: XDP_ADAPTER.pv_statusNotAvailable,
398: XDP_ADAPTER.pv_statusDeactivated,
391: end if;
392:
393: elsif p_Operation = XDP_ADAPTER.pv_opVerify then
394: if p_CurrentAdapterStatus not in (XDP_ADAPTER.pv_statusStopped,
395: XDP_ADAPTER.pv_StatusStoppedError,
396: XDP_ADAPTER.pv_StatusTerminated,
397: XDP_ADAPTER.pv_statusNotAvailable,
398: XDP_ADAPTER.pv_statusDeactivated,
399: XDP_ADAPTER.pv_statusDeactivatedSystem) then
392:
393: elsif p_Operation = XDP_ADAPTER.pv_opVerify then
394: if p_CurrentAdapterStatus not in (XDP_ADAPTER.pv_statusStopped,
395: XDP_ADAPTER.pv_StatusStoppedError,
396: XDP_ADAPTER.pv_StatusTerminated,
397: XDP_ADAPTER.pv_statusNotAvailable,
398: XDP_ADAPTER.pv_statusDeactivated,
399: XDP_ADAPTER.pv_statusDeactivatedSystem) then
400: l_isValid := true;
393: elsif p_Operation = XDP_ADAPTER.pv_opVerify then
394: if p_CurrentAdapterStatus not in (XDP_ADAPTER.pv_statusStopped,
395: XDP_ADAPTER.pv_StatusStoppedError,
396: XDP_ADAPTER.pv_StatusTerminated,
397: XDP_ADAPTER.pv_statusNotAvailable,
398: XDP_ADAPTER.pv_statusDeactivated,
399: XDP_ADAPTER.pv_statusDeactivatedSystem) then
400: l_isValid := true;
401: else
394: if p_CurrentAdapterStatus not in (XDP_ADAPTER.pv_statusStopped,
395: XDP_ADAPTER.pv_StatusStoppedError,
396: XDP_ADAPTER.pv_StatusTerminated,
397: XDP_ADAPTER.pv_statusNotAvailable,
398: XDP_ADAPTER.pv_statusDeactivated,
399: XDP_ADAPTER.pv_statusDeactivatedSystem) then
400: l_isValid := true;
401: else
402: l_isValid := false;
395: XDP_ADAPTER.pv_StatusStoppedError,
396: XDP_ADAPTER.pv_StatusTerminated,
397: XDP_ADAPTER.pv_statusNotAvailable,
398: XDP_ADAPTER.pv_statusDeactivated,
399: XDP_ADAPTER.pv_statusDeactivatedSystem) then
400: l_isValid := true;
401: else
402: l_isValid := false;
403: end if;
401: else
402: l_isValid := false;
403: end if;
404:
405: elsif p_Operation = XDP_ADAPTER.pv_opUpdate then
406: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusStopped,
407: XDP_ADAPTER.pv_StatusStoppedError,
408: XDP_ADAPTER.pv_StatusTerminated,
409: XDP_ADAPTER.pv_statusNotAvailable,
402: l_isValid := false;
403: end if;
404:
405: elsif p_Operation = XDP_ADAPTER.pv_opUpdate then
406: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusStopped,
407: XDP_ADAPTER.pv_StatusStoppedError,
408: XDP_ADAPTER.pv_StatusTerminated,
409: XDP_ADAPTER.pv_statusNotAvailable,
410: XDP_ADAPTER.pv_statusDeactivated,
403: end if;
404:
405: elsif p_Operation = XDP_ADAPTER.pv_opUpdate then
406: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusStopped,
407: XDP_ADAPTER.pv_StatusStoppedError,
408: XDP_ADAPTER.pv_StatusTerminated,
409: XDP_ADAPTER.pv_statusNotAvailable,
410: XDP_ADAPTER.pv_statusDeactivated,
411: XDP_ADAPTER.pv_statusDeactivatedSystem) then
404:
405: elsif p_Operation = XDP_ADAPTER.pv_opUpdate then
406: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusStopped,
407: XDP_ADAPTER.pv_StatusStoppedError,
408: XDP_ADAPTER.pv_StatusTerminated,
409: XDP_ADAPTER.pv_statusNotAvailable,
410: XDP_ADAPTER.pv_statusDeactivated,
411: XDP_ADAPTER.pv_statusDeactivatedSystem) then
412: l_isValid := true;
405: elsif p_Operation = XDP_ADAPTER.pv_opUpdate then
406: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusStopped,
407: XDP_ADAPTER.pv_StatusStoppedError,
408: XDP_ADAPTER.pv_StatusTerminated,
409: XDP_ADAPTER.pv_statusNotAvailable,
410: XDP_ADAPTER.pv_statusDeactivated,
411: XDP_ADAPTER.pv_statusDeactivatedSystem) then
412: l_isValid := true;
413: else
406: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusStopped,
407: XDP_ADAPTER.pv_StatusStoppedError,
408: XDP_ADAPTER.pv_StatusTerminated,
409: XDP_ADAPTER.pv_statusNotAvailable,
410: XDP_ADAPTER.pv_statusDeactivated,
411: XDP_ADAPTER.pv_statusDeactivatedSystem) then
412: l_isValid := true;
413: else
414: l_isValid := false;
407: XDP_ADAPTER.pv_StatusStoppedError,
408: XDP_ADAPTER.pv_StatusTerminated,
409: XDP_ADAPTER.pv_statusNotAvailable,
410: XDP_ADAPTER.pv_statusDeactivated,
411: XDP_ADAPTER.pv_statusDeactivatedSystem) then
412: l_isValid := true;
413: else
414: l_isValid := false;
415: end if;
413: else
414: l_isValid := false;
415: end if;
416:
417: elsif p_Operation = XDP_ADAPTER.pv_opDelete then
418: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusStopped,
419: XDP_ADAPTER.pv_StatusStoppedError,
420: XDP_ADAPTER.pv_StatusTerminated,
421: XDP_ADAPTER.pv_statusNotAvailable,
414: l_isValid := false;
415: end if;
416:
417: elsif p_Operation = XDP_ADAPTER.pv_opDelete then
418: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusStopped,
419: XDP_ADAPTER.pv_StatusStoppedError,
420: XDP_ADAPTER.pv_StatusTerminated,
421: XDP_ADAPTER.pv_statusNotAvailable,
422: XDP_ADAPTER.pv_statusDeactivated,
415: end if;
416:
417: elsif p_Operation = XDP_ADAPTER.pv_opDelete then
418: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusStopped,
419: XDP_ADAPTER.pv_StatusStoppedError,
420: XDP_ADAPTER.pv_StatusTerminated,
421: XDP_ADAPTER.pv_statusNotAvailable,
422: XDP_ADAPTER.pv_statusDeactivated,
423: XDP_ADAPTER.pv_statusDeactivatedSystem) then
416:
417: elsif p_Operation = XDP_ADAPTER.pv_opDelete then
418: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusStopped,
419: XDP_ADAPTER.pv_StatusStoppedError,
420: XDP_ADAPTER.pv_StatusTerminated,
421: XDP_ADAPTER.pv_statusNotAvailable,
422: XDP_ADAPTER.pv_statusDeactivated,
423: XDP_ADAPTER.pv_statusDeactivatedSystem) then
424: l_isValid := true;
417: elsif p_Operation = XDP_ADAPTER.pv_opDelete then
418: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusStopped,
419: XDP_ADAPTER.pv_StatusStoppedError,
420: XDP_ADAPTER.pv_StatusTerminated,
421: XDP_ADAPTER.pv_statusNotAvailable,
422: XDP_ADAPTER.pv_statusDeactivated,
423: XDP_ADAPTER.pv_statusDeactivatedSystem) then
424: l_isValid := true;
425: else
418: if p_CurrentAdapterStatus in (XDP_ADAPTER.pv_statusStopped,
419: XDP_ADAPTER.pv_StatusStoppedError,
420: XDP_ADAPTER.pv_StatusTerminated,
421: XDP_ADAPTER.pv_statusNotAvailable,
422: XDP_ADAPTER.pv_statusDeactivated,
423: XDP_ADAPTER.pv_statusDeactivatedSystem) then
424: l_isValid := true;
425: else
426: l_isValid := false;
419: XDP_ADAPTER.pv_StatusStoppedError,
420: XDP_ADAPTER.pv_StatusTerminated,
421: XDP_ADAPTER.pv_statusNotAvailable,
422: XDP_ADAPTER.pv_statusDeactivated,
423: XDP_ADAPTER.pv_statusDeactivatedSystem) then
424: l_isValid := true;
425: else
426: l_isValid := false;
427: end if;
425: else
426: l_isValid := false;
427: end if;
428:
429: elsif p_Operation = XDP_ADAPTER.pv_opGeneric then
430: -- Generic operation
431: if p_CurrentAdapterStatus = XDP_ADAPTER.pv_statusRunning then
432: l_isValid := true;
433: else
427: end if;
428:
429: elsif p_Operation = XDP_ADAPTER.pv_opGeneric then
430: -- Generic operation
431: if p_CurrentAdapterStatus = XDP_ADAPTER.pv_statusRunning then
432: l_isValid := true;
433: else
434: l_isValid := false;
435: end if;
448: is
449:
450: begin
451:
452: if ( XDP_ADAPTER_CORE_DB.IsChannelCOD(p_ChannelName) = 'N') then
453: return('Y');
454: elsif (XDP_ADAPTER_CORE_DB.PeekIntoFeWaitQueue(p_ChannelName) = 'Y') then
455: return('Y');
456: else
450: begin
451:
452: if ( XDP_ADAPTER_CORE_DB.IsChannelCOD(p_ChannelName) = 'N') then
453: return('Y');
454: elsif (XDP_ADAPTER_CORE_DB.PeekIntoFeWaitQueue(p_ChannelName) = 'Y') then
455: return('Y');
456: else
457: return( 'N');
458: end if;
474: end if;
475:
476: l_NotifID := wf_notification.Send(role => l_NotifRecipient,
477: msg_type => xdp_utilities.pv_ErrorNotifItemType,
478: msg_name => XDP_ADAPTER_CORE.pv_AdapterTermFailure,
479: due_date =>sysdate);
480:
481: wf_notification.SetAttrText( nid => l_NotifID,
482: aname => 'ADAPTER_NAME',
498: end if;
499:
500: l_NotifID := wf_notification.Send(role => l_NotifRecipient,
501: msg_type => xdp_utilities.pv_ErrorNotifItemType,
502: msg_name => XDP_ADAPTER_CORE.pv_AdapterSysDeactivated,
503: due_date =>sysdate);
504:
505: wf_notification.SetAttrText( nid => l_NotifID,
506: aname => 'ADAPTER_NAME',
507: avalue => p_AdapterName );
508:
509: end NotifyAdapterSysDeactivation;
510:
511: end XDP_ADAPTER_CORE;