Forum OpenACS Q&A: (MYOPENACS.ACS_OBJECTS_OBJECT_TYPE_FK) violated

I'm not sure why (that's why I'm posting in hopes of a hint on where to look) but when I try to insert stuff into my Oracle database it halts and errors out with this message:
Request Error

     ora8.c:3568:ora_tcl_command: error in `OCIStmtExecute ()': ORA-
02291: integrity constraint (MYOPENACS.ACS_OBJECTS_OBJECT_TYPE_FK) 
violated - parent key not found
     ORA-06512: at "MYOPENACS.ACS_OBJECT", line 68
     ORA-06512: at "MYOPENACS.SNMP_INCIDENT", line 39
     ORA-06512: at line 1

     SQL: begin :1 := snmp_incident.new(mac_address => :modem_mac, 
problem_id => :problem_id); end;
         while executing
     "ns_ora exec_plsql_bind nsdb0 {begin :1 := snmp_incident.new
(mac_address => :modem_mac, problem_id => :problem_id); end;} 1 {}"
         ("uplevel" body line 1)
         invoked from within
     "uplevel $ulevel [list ns_ora $type $db $sql] $args"
         invoked from within
     "db_exec exec_plsql_bind $db $full_statement_name $sql 2 1 """
         invoked from within
     "if { [regexp {:1} $test_sql] } {
                 return [db_exec exec_plsql_bind $db 
$full_statement_name $sql 2 1 ""]
             } else {
                 return [db_exec dml $db $fu..."
         ("uplevel" body line 5)
         invoked from within
     "uplevel 1 $code_block "
         invoked from within
     "db_with_handle db {
             # Right now, use :1 as the output value if it occurs in 
the statement,
             # or not otherwise.
             set test_sql [db_qd_replace_s..."
         (procedure "db_exec_plsql" line 11)
         invoked from within
     "db_exec_plsql insert_info "begin :1 := snmp_incident.new
(mac_address => :modem_mac, problem_id => :problem_id); end;""
         invoked from within
     "set incident_id [db_exec_plsql insert_info "begin :1 := 
snmp_incident.new(mac_address => :modem_mac, problem_id 
=> :problem_id); end;"]"
         ("uplevel" body line 329)
         invoked from within
     "uplevel {
               ad_page_contract {
             @Script that handles the query lookup or history lookup
         } {
             modem_mac
             action_type
         } -properties {
             erro..."
         (procedure "code::tcl::/web/oacs/www/snmp/www/run-query2" 
line 2)
         invoked from within
     "code::tcl::$__adp_stub"
         invoked from within
     "if { [file exists $__adp_stub.tcl] } {

           # ensure that data source preparation procedure exists and 
is up-to-date
           adp_init tcl $__adp_stub
     ..."
         ("uplevel" body line 3)
         invoked from within
     "uplevel {

         if { [file exists $__adp_stub.tcl] } {

           # ensure that data source preparation procedure exists and 
is up-to-date
           adp_init t..."
         (procedure "adp_prepare" line 3)
         invoked from within
     "adp_prepare "
         (procedure "template::adp_parse" line 31)
         invoked from within
     "template::adp_parse [file root [ad_conn file]] {}"
         (procedure "adp_parse_ad_conn_file" line 7)
         invoked from within
     "$handler"
         ("uplevel" body line 2)
         invoked from within
     "uplevel $code"
         invoked from within
     "ad_try {
             $handler
           } ad_script_abort val {
             # do nothing
           }"
         invoked from within
     "rp_serve_concrete_file [ad_conn file]"
         (procedure "rp_serve_abstract_file" line 60)
         invoked from within
     "rp_serve_abstract_file "$root/$path""
         ("uplevel" body line 2)
         invoked from within
     "uplevel $code"
         invoked from within
     "ad_try {
             rp_serve_abstract_file "$root/$path"
             set tcl_url2file([ad_conn url]) [ad_conn file]
             set tcl_url2path_info([ad_conn url]) [ad_conn 
path_inf..."

I understand that some foreign key is referencing something that doesn't exist. But I am not sure if it's going:
OpenACS --> Me or Me --> OpenACS
Thanks in advance
Collapse
Posted by Dave McBride on
See if there is a line in the    acs_object_type.create_type
call such as this:

package_name  => 'NAME'

For some reason, this line allows only one object type to be created for that package name.  I removed it from my calls and  the error does not happen.

Dave