DBMS Alerts and PROC do they need to be spooled?

From: John D Groenveld <groenvel_at_sml.cse.psu.edu>
Date: 14 Aug 1994 19:33:21 GMT
Message-ID: <32lri1$dff_at_psuvax1.cse.psu.edu>


I'm trying to add to the functionality of Forms 4.0 and Oracle 7 by adding in the ability to query long text fields. I've decided on a system where on insert or update, the long field is parsed and each word is assigned an index value from a dictionary. I have a table dictionary which contains words used and there corresponding index value and a table parsed_long with the table name (since there can only be one long field per table), sir_number (the unique key) and the dictionary index value.

Heres my pseudo code:
  Arguments:
    DBMS_Alert Signal w/ message containing:

      sir_number
      table_name
      column_name

  Returns:

  Pseudo Code:
    begin

       wait until alert is sent from database trigger
       get arguments from alert message (sir_number,table_name,column_name)
       get corresponding long field   
       check to see if this long has been parsed before and delete from
             parsed_long table if it was
       parse long field for words deliminated by spaces or control characters
       for each word
          check to see if it is in the dictionary
          if not in dictionary, insert it and assign it a index value
          insert index value into the parsed_long table w/ sir_number,
               table_name,column_name
       repeat until an error

    end

Anyway my problem/question is what happens when more than one long field is inserted at the same time. In other word the above proc program is any state other than waiting for an alert.a Does the alert get ignored? Is it spooled? I assume that it gets ignored (I cant test right now since my database is currently down) Does anyone have any suggestions on how to deal with these signals and the triggers that create them? I was thinking that perhaps I could make the database trigger wait until my proc was ready to receive but I'm sure how to implement that?

Also could someone suggest the easiest way for me to have my parse_long program startup with Oracle? And does anyone know if SQLERROR procedure will catch a SIGTERM so that I can do a rollback in case of SUN reboot?

Thanks a lot in advance
John

BTW my platform is SUNOS4.1.3 Oracle 7.0.16 PROC 1.5 Received on Sun Aug 14 1994 - 21:33:21 CEST

Original text of this message