分类:
2011-03-21 15:51:40
We met an error message during ADI installation.
(509):OS_ERROR while spwawning
C:\windows\system32\spawner.exe
C:\windows\system32\AUWERG32.exe /S /32
We just comment the 509th line in the file of adicom30.ins, then it is passed. Or you can download the attached file, rename the file name to “adicom30.ins” and replace the one in your installation package if you also met this problem and have not other solution to resolve it.
-------------------------------------------------------------
/* Copyright (c) Oracle Corporation 1992. All Rights Reserved */
/*****************************************************************************
NAME
adicom30.ins - installation script for Development Kit Common Files
DESCRIPTION
This script installs the ADICOM30 product
OWNER
MODIFIED DD-MMM-YY Reason
jrichard 24-SEP-97 Created
jrichard 30-SEP-97 Added dependency on OO40
jrichard 02-MAY-00 Commented out the installation of OO4O
*****************************************************************************/
{
{doit = doit;}
['UNBOUND_VARIABLE: doit = FALSE;]
if (doit)
{
/*----------------------------------------------+
| Set the VRF-INS script "ratchet" |
| EDIT: Put your 5 digit version number below. |
+----------------------------------------------*/
ins_ratchet = "1.0.16.2.2";
/*-------------------------------------------------------------------+
| Execute windows.ins to performs common installation functionality |
| across product INS scripts. It makes sure that any and all |
| variables in the list 'check_vars' are bound, and prints a |
| failure message if they are not. |
+-------------------------------------------------------------------*/
if ( operating_system == "windows" )
execute("%installer_home%\windows.ins");
if ( operating_system == "win95" )
execute("%installer_home%\win95.ins");
if ( operating_system == "nt" )
execute("%installer_home%\nt.ins");
/*------------------------------------------------------------------+
| The installer will not provide the user with the option to retry |
| file operations that have failed if permit_retry_operations is |
| bound to FALSE. Otherwise, the installer will always provide the |
| user with the option to retry file operations that have failed. |
+------------------------------------------------------------------*/
permit_retry_operations = TRUE;
/*---------------------------------------------------------------------+
| If permit_ignore_operations is bound to FALSE, the installer will |
| remove the ignore button from the retry dialog whenever it is shown.|
+---------------------------------------------------------------------*/
permit_ignore_operations = TRUE;
/*----------------------------------------------------------------+
| If permit_process_operations is bound to FALSE, the installer |
| will remove the continue button from the retry dialog whenever |
| it is shown. |
+----------------------------------------------------------------*/
permit_process_operations= TRUE;
/*----------------------------------------------------------+
| EDIT: List all your product dependencies below. |
+----------------------------------------------------------*/
/* Include optional dependencies for:
*/
/*--------------------+
| Platform Dependent |
+--------------------*/
/*--------------+
| If WindowsNT |
+--------------*/
if ( operating_system == "nt" )
{
# Initialize and stop the Oracle ADI Service where it is running, need to give the instruction to stop now
# to give the service time to stop, before we attempt to upgrade the service.
execute("%installer_home%\services.vrf");
adi_service_running = FALSE ;
adi_service_state = 0 ;
if ( exists ( "%oracle_home%\bin\adisrv.exe" ) )
{
# If the service isn't stopped. Stop it before continuing
adi_service_state = winnt_query_service_status( "Oracle ADI Service" ) ;
if (adi_service_state != SERVICE_STOPPED )
{
#information_dialog ("Service not stopped going to attempt to stop") ;
adi_service_running = TRUE ;
{ winnt_stop_service("Oracle ADI Service"); }
['NO_RESPONSE: continue();]
}
}
}
# Seems redundant, but Windows 95 and Windows 98 Operating Systems will fail on the winnt commands above
# if the else isn't included.
else
{
}
if (install_parent)
{
install(winadi10);
}
/*---------------------+
| Install the product |
+---------------------*/
/*-----------------------------------------------------------------+
| Forces the Progress Dialog to display product_label in the area |
| reserved for product information. |
+-----------------------------------------------------------------*/
ui_product(product_label);
/*-----------------------------------------------------------------+
| Forces the Progress Dialog to display installing_scripts in the |
| area reserved for action information. |
+-----------------------------------------------------------------*/
/*--------------------------------------------------------------+
| And copy product's scripts from the medium to customer's PC. |
+--------------------------------------------------------------*/
ui_action(instantiate(installing_scripts) );
copy(deinstl);
if ( version_status == 'UPGRADE )
{
remove(oldfiles);
}
reboot_Required = FALSE;
ui_action(instantiate(installing_vb_libraries));
copy(winrsf);
/*--------------------------------------------------------------+
| Check the versions of files that are required to register |
| the ADI components. If they are not the required versions |
| spawn the component supplied by Microsoft to upgrade. |
| |
| msvbvm50.dll = "5.00.4319", oleaut32.dll = "2.20.4118", |
| olepro32.dll = "5.0.4118" , stdole2.tlb = "2.20.4118", |
| asycfilt.dll = 2.20.4118" , comcat.dll = "4.71"; |
+--------------------------------------------------------------*/
vb_upgrade_required = FALSE;
{
# MSVBVM50.DLL
if ( exists ( "%windows_sys_dir%\msvbvm50.dll" ) == TRUE )
{
if ( windows_earlier_version ( "%windows_sys_dir%\msvbvm50.dll", "5.00.4319" ) )
{
# Condition to handle the version of msvbvm50.dll that ships with MSVBVM50.EXE
if ( windows_file_version ("%windows_sys_dir%\msvbvm50.dll") != "05.00.4319 (SP2)" )
{
# Condition to handle the version of msvbvm50.dll that ships with NT 4.0 Service Pack 4 and 5
if ( windows_file_version ("%windows_sys_dir%\msvbvm50.dll") != "05.02.8244 (SP2)" )
{
vb_upgrade_required = TRUE ;
}
}
}
}
else
{
vb_upgrade_required = TRUE ;
}
# OLEAUT32.DLL
if ( exists ( "%windows_sys_dir%\oleaut32.dll" ) )
{
if (windows_earlier_version( "%windows_sys_dir%\oleaut32.dll", "2.20.4118" ))
vb_upgrade_required = TRUE ;
}
else
{
vb_upgrade_required = TRUE ;
}
# OLEPRO32.DLL
if ( exists ( "%windows_sys_dir%\olepro32.dll" ) )
{
if (windows_earlier_version( "%windows_sys_dir%\olepro32.dll", "5.0.4118" ))
vb_upgrade_required = TRUE ;
}
else
{
vb_upgrade_required = TRUE ;
}
# STDOLE2.TLB
if ( exists ( "%windows_sys_dir%\stdole2.tlb" ) )
{
if (windows_earlier_version( "%windows_sys_dir%\stdole2.tlb", "2.20.4118" ))
vb_upgrade_required = TRUE ;
}
else
{
vb_upgrade_required = TRUE ;
}
# ASYCFILT.DLL
if ( exists ( "%windows_sys_dir%\asycfilt.dll" ) )
{
if (windows_earlier_version( "%windows_sys_dir%\asycfilt.dll", "2.20.4118" ))
vb_upgrade_required = TRUE ;
}
else
{
vb_upgrade_required = TRUE ;
}
# COMCAT.DLL
if ( exists ( "%windows_sys_dir%\comcat.dll" ) )
{
if (windows_earlier_version( "%windows_sys_dir%\comcat.dll", "4.71" ))
vb_upgrade_required = TRUE ;
}
else
{
vb_upgrade_required = TRUE ;
}
# Check the Upgrade Required varible. If true then spawn the Upgrade component
if ( vb_upgrade_required )
{
information_dialog ( "The Installer has found Microsoft files that need to be upgraded. These files will be upgraded using a Microsoft patching utility. Please follow the instructions as they appear on the screen. You may be asked to restart the computer when the patching utility finishes; DO NOT restart the computer if this happens. Instead, click the Cancel button at that point to allow the ADI patch to finish installing, and then restart the computer." );
spawn ( "%windows_sys_dir%\msvbvm50.exe" );
}
}
ui_action(instantiate(installing_dll));
copy(dll);
/* Where the security executable is already installed, check to see if it is running before attempting to
install the version supplied in this patch, otherwise just install and register */
ui_action(instantiate(installing_dbc));
#information_dialog ("About to process the DBC Security");
if (platform() == "nt")
{
# Service was given the instruction to stop earlier. By now it should have completed this process
# so we can update the executable and re-register
if ( exists ( "%oracle_home%\bin\adisrv.exe" ) )
{
# Copy and re-register the security service
copy(dbcsec);
/* Register the Central Database Definition Service */
{
spawn("%ORACLE_HOME%\BIN\ADISRV.EXE");
}
['UNKNOWN_ERROR, 'NO_RESPONSE: continue();]
permit_retry_operations = TRUE;
# Restart the Service if it was running previously
if (adi_service_state == SERVICE_RUNNING)
{
#information_dialog ("Attempting to Restart the service - not") ;
winnt_start_service("Oracle ADI Service");
}
}
else
{
copy(dbcsec);
/* Register the Central Database Definition Service */
{
spawn("%ORACLE_HOME%\BIN\ADISRV.EXE");
}
['UNKNOWN_ERROR, 'NO_RESPONSE: continue();]
permit_retry_operations = TRUE;
}
}
ui_action(instantiate(installing_resource));
copy(auwres);
if (operating_system == "nt")
{
copy(auwresnt);
}
if (operating_system == "win95")
{
copy(auwres95);
}
if ( ADISharedInstall == TRUE )
{
copy(shrdll);
if ( operating_system == "nt" )
{
copy (shrdllnt);
}
if ( operating_system == "win95" )
{
copy (shrdll95);
}
}
/*--------------------------------------------------------------+
| Copy VB and VBX Runtime Files with Version Checking |
| This code taken directly from the OO4O 1.0.55.0.0 Installer |
+--------------------------------------------------------------*/
ui_action(instantiate(installing_vb_libraries));
system_files = group_files(windll);
product_directory = implode(list(product_home,
product_location(current_product)),"\");
pathify(product_directory);
while (not (empty(system_files)))
{
/* Set up the filenames and versions */
current_destination_file = first(system_files);
current_source_file = implode(list(product_directory, file_name(current_destination_file)), "\");
pathify(current_source_file);
ui_action(current_destination_file);
/* Ensure there are no double backslashes in the path */
current_source_file = replace ( current_source_file, "\\", "\" );
current_destination_file = replace ( current_destination_file, "\\", "\" );
source_file_version = windows_file_version(current_source_file);
{
if (not( exists (current_destination_file) ) )
{
copy_file(current_source_file, current_destination_file);
} # File is not in the destination directory
else
{
if (windows_earlier_version( current_destination_file, source_file_version ))
{
file_name_list = list();
inst_file_name = "";
inst_file_ext = "";
temp_file_ext = "";
copy_destination_file = "";
replace_destination_file = "";
replace_source_file = "";
# Prepare the file variables for manipulation
file_name_list = explode ( current_destination_file, "\" );
while ( not ( empty ( file_name_list ) ) )
{
inst_file_name = first ( file_name_list );
file_name_list = rest (file_name_list );
}
move_dest_file = inst_file_name;
file_name_list = list();
file_name_list = explode ( inst_file_name, "." );
inst_file_name = first ( file_name_list );
file_name_list = rest ( file_name_list );
inst_file_ext = first ( file_name_list );
# Generate the extension the file was copied into the support directory with
if ( inst_file_ext == "DLL" )
{ temp_file_ext = "DL_"; }
if ( inst_file_ext == "OCX" )
{ temp_file_ext = "OC_"; }
copy_destination_file = "%oracle_home%\gldi90\support\%inst_file_name%.%temp_file_ext%";
replace_destination_file = "%windows_sys_dir%\%inst_file_name%.%temp_file_ext%";
replace_source_file = "%windows_sys_dir%\%inst_file_name%.%inst_file_ext%";
# Copy the required file into the system directory.
copy_file ("%copy_destination_file%", "%replace_destination_file%");
if ( operating_system == "win95" )
{
modify("%replace_source_file%", "%replace_destination_file%","%win_loc%\wininit.ini","RENAME");
}
if ( operating_system == "nt" )
{
{
spawn("%windows_sys_dir%\mvfile.exe %replace_destination_file% %replace_source_file%");
}
}
reboot_Required = TRUE;
}
} # File is present in the destination directory
} ['default: continue(); ]
system_files = rest(system_files);
} # while (not (empty(system_files)))
/*--------------------------------------------------------------+
|Processing for Operating System Specific DLLs |
+--------------------------------------------------------------*/
if ( operating_system == "nt" )
{
system_files = group_files(windllnt);
product_directory = implode(list(product_directory, "WINNT"), "\");
}
if ( operating_system == "win95" )
{
system_files = group_files(windll95);
product_directory = implode(list(product_directory, "WIN95"), "\");
}
/* Use the same code from processing windll to handle these OS specific files */
while (not (empty(system_files)))
{
/* Set up the filenames and versions */
current_destination_file = first(system_files);
current_source_file = implode(list(product_directory, file_name(current_destination_file)), "\");
pathify(current_source_file);
ui_action(current_destination_file);
/* Ensure there are no double backslashes in the path */
current_source_file = replace ( current_source_file, "\\", "\" );
current_destination_file = replace ( current_destination_file, "\\", "\" );
source_file_version = windows_file_version(current_source_file);
{
if (not( exists (current_destination_file) ) )
{
copy_file(current_source_file, current_destination_file);
} # File is not in the destination directory
else
{
if (windows_earlier_version( current_destination_file, source_file_version ))
{
file_name_list = list();
inst_file_name = "";
inst_file_ext = "";
temp_file_ext = "";
replace_destination_file = "";
replace_source_file = "";
# Prepare the file variables for manipulation
file_name_list = explode ( current_destination_file, "\" );
while ( not ( empty ( file_name_list ) ) )
{
inst_file_name = first ( file_name_list );
file_name_list = rest (file_name_list );
}
move_dest_file = inst_file_name;
file_name_list = list();
file_name_list = explode ( inst_file_name, "." );
inst_file_name = first ( file_name_list );
file_name_list = rest ( file_name_list );
inst_file_ext = first ( file_name_list );
# Generate the extension the file was copied into the support directory with
if ( inst_file_ext == "DLL" )
{ temp_file_ext = "DL_"; }
if ( inst_file_ext == "OCX" )
{ temp_file_ext = "OC_"; }
replace_destination_file = "%oracle_home%\gldi90\support\%inst_file_name%.%temp_file_ext%";
replace_source_file = "%windows_sys_dir%\%inst_file_name%.%inst_file_ext%";
if ( operating_system == "win95" )
{
modify("%replace_source_file%", "%replace_destination_file%", "%win_loc%\wininit.ini","RENAME");
}
if ( operating_system == "nt" )
{
{spawn("%windows_sys_dir%\mvfile.exe %replace_destination_file% %replace_source_file%");}
}
reboot_Required = TRUE;
}
} # File is present in the destination directory
} ['default: continue(); ]
system_files = rest(system_files);
} # while (not (empty(system_files)))
if ( reboot_Required )
{
add ( reboot_hints, installing_reboot);
}
/*--------------------------------------------------------------+
| Register OLE Objects with the Windows Registration Database |
+--------------------------------------------------------------*/
permit_retry_operations = FALSE;
ui_action(instantiate(registering));
/* Register the 32Bit AUW Files */
{
# spawn( replace( "%windows_sys_dir%\SPAWNER.EXE %windows_sys_dir%\AUWREG32.EXE /S /32", "\\", "\") );
}
['UNKNOWN_ERROR, 'NO_RESPONSE: continue();]
/* Register the 32Bit Language Selection Object */
{
spawn("%ORACLE_HOME%\BIN\ADILANGO.EXE");
}
['UNKNOWN_ERROR, 'NO_RESPONSE: continue();]
/* Register the 32Bit Security Object */
{
spawn("%ORACLE_HOME%\BIN\ADISEC.EXE");
}
['UNKNOWN_ERROR, 'NO_RESPONSE: continue();]
permit_retry_operations = TRUE;
/*----------------------------------------+
| Setup Registry Entries for Oracle Lite |
+----------------------------------------*/
/* Setup the ODBC and ODBCINST.INI framework that is required to create the Oracle Lite settings*/
if (not(win32_key_exists("HKEY_LOCAL_MACHINE","SOFTWARE\ODBC")))
win32_create_key("HKEY_LOCAL_MACHINE","SOFTWARE\ODBC");
if (not(win32_key_exists("HKEY_LOCAL_MACHINE","SOFTWARE\ODBC\ODBCINST.INI")))
win32_create_key("HKEY_LOCAL_MACHINE","SOFTWARE\ODBC\ODBCINST.INI");
if (not(win32_key_exists("HKEY_LOCAL_MACHINE","SOFTWARE\ODBC\ODBCINST.INI\ODBC DRIVERS")))
win32_create_key("HKEY_LOCAL_MACHINE","SOFTWARE\ODBC\ODBCINST.INI\ODBC DRIVERS");
if (not(win32_key_exists("HKEY_LOCAL_MACHINE","SOFTWARE\ODBC\ODBCINST.INI\Oracle Lite ODBC Driver")))
win32_create_key("HKEY_LOCAL_MACHINE","SOFTWARE\ODBC\ODBCINST.INI\Oracle Lite ODBC Driver");
win32_set_value("HKEY_LOCAL_MACHINE","SOFTWARE\ODBC\ODBCINST.INI\ODBC DRIVERS",
"Oracle Lite ODBC Driver", "Installed");
win32_set_value("HKEY_LOCAL_MACHINE","SOFTWARE\ODBC\ODBCINST.INI\Oracle Lite ODBC Driver",
"32Bit","1");
win32_set_value("HKEY_LOCAL_MACHINE","SOFTWARE\ODBC\ODBCINST.INI\Oracle Lite ODBC Driver",
"APILevel","0");
win32_set_value("HKEY_LOCAL_MACHINE","SOFTWARE\ODBC\ODBCINST.INI\Oracle Lite ODBC Driver",
"ConnectFunctions","YYN");
win32_set_value("HKEY_LOCAL_MACHINE","SOFTWARE\ODBC\ODBCINST.INI\Oracle Lite ODBC Driver",
"Driver","%windows_sys_dir%\ootod32.dll");
win32_set_value("HKEY_LOCAL_MACHINE","SOFTWARE\ODBC\ODBCINST.INI\Oracle Lite ODBC Driver",
"DriverODBCVer","02.00");
win32_set_value("HKEY_LOCAL_MACHINE","SOFTWARE\ODBC\ODBCINST.INI\Oracle Lite ODBC Driver",
"Setup","%windows_sys_dir%\ootadm32.dll");
win32_set_value("HKEY_LOCAL_MACHINE","SOFTWARE\ODBC\ODBCINST.INI\Oracle Lite ODBC Driver",
"SQLLevel","0");
/*----------------------+
| Register the product |
+----------------------*/
ui_product(product_label);
ui_action(instantiate(registering));
register(current_product);
/* --------------- */
/* OCSM Compliance */
/* --------------- */
{
Win32_register_OCSM_product();
}
[
'default: win32_ocsm_register_product();
]
/* Register the groups in the map file and specify which should get
copied over under the three OCSM installation modes. */
win32_register_OCSM_group ( deinstl, 'MAXMODE ) ;
win32_register_OCSM_group ( auwres, 'MAXMODE ) ;
win32_register_OCSM_group ( dll, 'MAXMODE ) ;
win32_register_OCSM_group ( dbcsec, 'MAXMODE ) ;
win32_register_OCSM_group ( shrdll, 'MAXMODE ) ;
win32_register_OCSM_group ( deinstl, 'MEDMODE ) ;
win32_register_OCSM_group ( auwres, 'MEDMODE ) ;
win32_register_OCSM_group ( dll, 'MEDMODE ) ;
win32_register_OCSM_group ( dbcsec, 'MEDMODE ) ;
win32_register_OCSM_group ( shrdll, 'MEDMODE ) ;
win32_register_OCSM_group ( deinstl, 'MINMODE ) ;
win32_register_OCSM_group ( auwres, 'MINMODE ) ;
win32_register_OCSM_group ( dll, 'MINMODE ) ;
win32_register_OCSM_group ( dbcsec, 'MINMODE ) ;
win32_register_OCSM_group ( shrdll, 'MINMODE ) ;
if ( operating_system == "nt" )
{
win32_register_OCSM_group ( shrdllnt, 'MAXMODE ) ;
win32_register_OCSM_group ( shrdllnt, 'MEDMODE ) ;
win32_register_OCSM_group ( shrdllnt, 'MINMODE ) ;
win32_register_OCSM_group ( auwresnt, 'MAXMODE ) ;
win32_register_OCSM_group ( auwresnt, 'MEDMODE ) ;
win32_register_OCSM_group ( auwresnt, 'MINMODE ) ;
}
if ( operating_system == "win95" )
{
win32_register_OCSM_group ( shrdll95, 'MAXMODE ) ;
win32_register_OCSM_group ( shrdll95, 'MEDMODE ) ;
win32_register_OCSM_group ( shrdll95, 'MINMODE ) ;
win32_register_OCSM_group ( auwres95, 'MAXMODE ) ;
win32_register_OCSM_group ( auwres95, 'MEDMODE ) ;
win32_register_OCSM_group ( auwres95, 'MINMODE ) ; }
/* Register any variables in the map file that are not Installer variables. */
win32_register_map_variable("oracle_group_name");
win32_register_map_variable("W32SYS");
/* Register variables or keys registry setting with the installer. */
/* Associated with calls to: modify(...) later on in the code. */
/* win32_register_key ( main_key, fadi_key, 'REPLICATE ) ; */
# Replicate the ODBC Keys for Oracle Lite. Don't replicate other ODBC entries though.
win32_register_key("HKEY_LOCAL_MACHINE","SOFTWARE\ODBC");
win32_register_key("HKEY_LOCAL_MACHINE","SOFTWARE\ODBC\ODBCINST.INI");
win32_register_key("HKEY_LOCAL_MACHINE","SOFTWARE\ODBC\ODBCINST.INI\ODBC DRIVERS");
win32_register_key("HKEY_LOCAL_MACHINE","SOFTWARE\ODBC\ODBCINST.INI\Oracle Lite ODBC Driver", 'REPLICATE);
/* Register any .REG files */
/* win32_register_OLE_group ( oipreg ) ; */
/* Register any .OCX groups */
/* win32_register_OCX_group ( xxx ) ; */
/* ------------------- */
/* End OCSM Compliance */
/* ------------------- */
/*----------------------------------------------+
| P14: Self reference to workaround Bug 362956 |
+----------------------------------------------*/
if (member(selected_products, current_product))
reference(current_product);
/*----------------------------------------+
| Reference dependent products |
| EDIT: list all your dependent products |
+----------------------------------------*/
{reference(winadi10, current_product);}
['UNREGISTERED_PRODUCT: continue();]
/*--------------------+
| Platform Dependent |
+--------------------*/
}
}