Database Event Alerter For Oracle
Version: 1.0
Requirements: Oracle Server for Windows
File Size: 132 KB
License: Free to Try
The event notification mechanism includes server and client components. An event
can be posted by using theserver component. The server component broadcasts event
messages to interested client applications.
An application can get messages using a client component. This component is the
Sql_messenger ActiveX control. The control allows client application to receive
messages for specific event. You can easy build much more sophisticated applications
or services using these components. Now, in awaiting some critical data or events
an application does not need to query Database Server repeatedly. The SQL Server
will notify an application when the data came or event happened.
Copy the ora_messenger.dll over to your Oracle Server \Bin directory.
Check listener.ora file. Add:
(ENVS = "EXTPROC_DLLS=ANY")
If it doesn't exist. Register the DLL in Oracle:
CREATE OR REPLACE LIBRARY ora_messenger IS
'C:\oraclexe\app\oracle\product\10.2.0\server\BIN\ora_messenger.dll';
Add your new function by executing the following SQL command:
CREATE OR REPLACE FUNCTION xp_messenger(
message in char
, host in char
, dest in char
)
RETURN BINARY_INTEGER
AS EXTERNAL
LIBRARY ora_messenger
NAME "ora_messenger"
LANGUAGE C
PARAMETERS (
message string
, host string
, dest string
);
declare res binary_integer;
begin
res := xp_messenger('message','host','dest');
end
Where:
@message
- The message string. The maximum string length is 300 characters.
@host
- The destination. Host Name, Host IP, Workgroup Name, Domain Name or '*'
can be used as the destination. Use '*' to send a message to all
domain/workgroup computers.
@dest
- The Slot Name. Default value is 'events'. Multiple Slot Names now supported. Use: 'ev1;ev2;...evN'
You may drop the UDF by using the command:
DROP FUNCTION xp_messenger;
Q. What is the purpose of the ora_messenger.dll?
A. The ora_messenger.dll is a User-Defined Function (UDF) for the Oracle Database Server.
Q. What is the purpose of the sql_messenger.dll?
A. The sql_messenger.dll is an ActiveX control. The control receives
messages from the UDF, and calls the OnData() method for each message.
Q. If I want to receive messages from ora_messenger.dll, do I
have to establish a connection with the Oracle Database Server?
A. No, you don't need to establish connection with the Oracle Database Server.
Q. What mechanism is used by the UDF to send messages?
A. Windows mailslots are used to deliver the messages.
Q. Why do I receive each message twice?
A. It happens when the server or workstation has two NICs.
Q. If I have a router between the Oracle Database Server and a workstation, can I send messages
to the workstation?
A. If you have a router between the Oracle Database Server and workstation, you only cannot broadcast
messages. Ora_messenger.dll sends a broadcast message when @dest='*'.
If @dest parameter has a workstation name or its IP address, the workstation will be
able to receive messages from the extended stored procedure.
Q. Can you tell me more about licenses?
A. We have several types of licenses.
- Standard: The ora_messenger.dll may be installed on one copy of the Oracle Database Server.
- Developer: We will provide you with two licenses. One license is a
standard license for your developer Oracle Database Server. The second one is a distribution license. It permits
distribution of ora_messenger.dll with products developed in your company. You may only use the distribution
license outside of your company.
- Pro: 20 standard licenses.