[Home] [Help]
PACKAGE BODY: APPS.XNP_PIPE
Source
1 PACKAGE BODY xnp_pipe AS
2 /* $Header: XNPPIPEB.pls 120.2 2006/02/13 07:53:51 dputhiye ship $ */
3
4 /* Reads from the specified pipe */
5
6 procedure read( p_pipe_name in varchar2
7 ,x_msg_text OUT NOCOPY varchar2
8 ,x_error_code OUT NOCOPY number
9 ,x_error_message OUT NOCOPY varchar2,
10 p_timeout in number default 0 )
11
12 is
13 l_msg_status number ;
14
15 begin
16
17 x_error_code := 0 ;
18 x_error_message := 'No Errors' ;
19
20 l_msg_status := dbms_pipe.receive_message(p_pipe_name, p_timeout) ;
21
22 if (l_msg_status = 0) then
23 dbms_pipe.unpack_message(x_msg_text) ;
24 elsif (l_msg_status = 1) then
25 x_error_code := xnp_errors.g_no_msg_in_pipe ;
26 x_error_message := 'No message in pipe - timedout' ;
27 --We donot use this message for anything - fnd_message.get is a DB call!!
28 --fnd_message.set_name('XNP','NO_MSG_IN_PIPE') ;
29 --fnd_message.set_token('NAME',p_pipe_name) ;
30 --fnd_message.set_token('TIMEOUT',TO_CHAR(p_timeout)) ;
31 --x_error_message := fnd_message.get;
32 else
33 x_error_code := sqlcode ;
34 x_error_message := sqlerrm ;
35 end if ;
36
37 exception
38 when others then
39 x_error_code := sqlcode ;
40 x_error_message := sqlerrm ;
41
42 end read ;
43
44
45 /* Writes to the specified pipe */
46
47 procedure write( p_pipe_name in varchar2
48 ,P_MSG_TEXT IN VARCHAR2
49 ,x_error_code OUT NOCOPY number
50 ,x_error_message OUT NOCOPY varchar2
51 ,p_timeout in number default 0 )
52 IS
53
54 l_status number ;
55
56 begin
57
58 x_error_code := 0 ;
59 x_error_message := 'No Errors' ;
60
61 dbms_pipe.purge(p_pipe_name) ;
62
63 dbms_pipe.pack_message(p_msg_text) ;
64
65 l_status := dbms_pipe.send_message(p_pipe_name, p_timeout) ;
66
67 if (l_status <> 0) then
68 x_error_code := xnp_errors.g_pipe_write_failure ;
69 x_error_message := 'Failed to write to the specified pipe';
70 end if ;
71
72 exception
73 when others then
74 x_error_code := sqlcode ;
75 x_error_message := sqlerrm ;
76
77 end write ;
78
79 end xnp_pipe ;