What an experience it has been to configure and run my toolkit with a local Oracle installation, I decided to document some of the errors I encountered, hopefully this will help others.
My software stack
WCS V7 toolkit with feature pack 4, fix pack 5
Windows 7 OS (64 bit)
Oracle 11g, Release 2 (installed the "desktop class" version, this is supposed to be lite version of server edition)
All of the software stack is installed on a single host machine.
Step 1.a
I started with installation of a 64 bit version of Oracle server/client on my laptop, this was probably the first biggest mistake, and here is some explanation and possible workaround.
"WCS developer still makes use of a 32 bit JVM and hence would require a 32 bit Oracle driver"
c:\IBM\WCDE_ENT70\bin>setdbtype.bat oracle "C:\app\~\product\11.2.0\dbhome_2" wcs sys Oracle123 wcs7dev wcs7dev createdb
Error 1
"\Common was unexpected at this time"
to resolve this issue I had to edit c:\IBM\WCDE_ENT70\bin\setenv.bat
and replace following line
set PATH=%JAVA_HOME%\bin;%PATH%
with following entry
set PATH=%JAVA_HOME%\bin;c:\app\~\product\11.2.0\dbhome_2\bin;C:\Windows\system32;C:\Windows
I believe the issue here is the default script appends rest of system path setting and it had few lengthy URL with spaces etc.. so I decided to include only the path entries required for setdbtype script.
again... I'm not very sure of the root cause, but this hack worked fine for me.
Error 2
All of the tables were created successfully, buy It fails during massload with following error.
"WCS massload utility makes use of OCI driver and expects a 32 bit version of the driver"
Exception in thread "main" java.lang.UnsatisfiedLinkError: ocijdbc11 (.\ocijdbc11.dll is not a valid Win32 application. )
at java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:1011)
at java.lang.ClassLoader.loadLibraryWithClassLoader(ClassLoader.java:975)
at java.lang.System.loadLibrary(System.java:469)
at oracle.jdbc.driver.T2CConnection$1.run(T2CConnection.java:3506)
at java.security.AccessController.doPrivileged(AccessController.java:202)
at oracle.jdbc.driver.T2CConnection.loadNativeLibrary(T2CConnection.java:3502)
at oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:252)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531)
at oracle.jdbc.driver.T2CConnection.<init>(T2CConnection.java:148)
at oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:53)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)
at java.sql.DriverManager.getConnection(DriverManager.java:322)
at java.sql.DriverManager.getConnection(DriverManager.java:358)
at com.ibm.wca.dbconnect.DbConnectionImpl.connect(DbConnectionImpl.java:243)
at com.ibm.wca.MassLoader.MassLoad.loadDbConnection(MassLoad.java:1176)
at com.ibm.wca.MassLoader.MassLoad.execute(MassLoad.java:181)
at com.ibm.wca.MassLoader.MassLoad.<init>(MassLoad.java:114)
at com.ibm.wca.MassLoader.MassLoad.main(MassLoad.java:101)
Infocenter does provide some options to change it to a thin driver, but then I hit one error after another, and finally decided to give up and go with 32 bit version of Oracle software.
you could also try and download a 32 bit version of Oracle client /driver, but I was not so confident of this approach as it could impact the base Oracle installation.
I abandoned this step and moved to Step 1.b
Step 1.b
I downloaded the 32 bit version of Oracle software, this time around problem started with installation of database.
I got following error from Oracle installer and found a possible explanation from this thread.
as suggested in this thread I safely ignored the errors from installer and completed the database installation.
Error: File not found orandce11.dll.dbl
https://forums.oracle.com/forums/thread.jspa?threadID=1059983&start=15&tstart=0
Once the DB installation was completed I moved on to setdbtype command and this time everything ran properly including massload.
c:\IBM\WCDE_ENT70\bin>setdbtype.bat oracle "C:\app\~\product\11.2.0\dbhome_2" wcs sys Oracle123 wcs7dev wcs7dev createdb
Make sure you review WCDE_ENT70\logs\createdb.oracle.log file to ensure there were no errors.
Step 2
After running the setdbtype command, and before publishing any stores in the new database, you need to run the resetstores command to clean the store database, this will reset the stores project to bootstrap.
Any features enabled prior to running the setdbtype command must be re-enabled, I preferred to enable following features.
enableFeature.bat -DfeatureName=foundation
enableFeature.bat -DfeatureName=management-center
enableFeature.bat -DfeatureName=store-enhancements
Prepare Oracle for WCS toolkit configuration:
Few utility SQL's which came in handy during the installation / configuration, there other ways to do this, but these scripts just worked fine for me.
CREATE USER "WCS7DEV" PROFILE "DEFAULT" IDENTIFIED BY "wcs7dev" DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK;
GRANT "CONNECT" TO "WCS7DEV";
GRANT create procedure to "WCS7DEV";
GRANT create sequence to "WCS7DEV";
GRANT create session to "WCS7DEV";
GRANT create synonym to "WCS7DEV";
GRANT create table to "WCS7DEV";
GRANT create trigger to "WCS7DEV";
GRANT create view to "WCS7DEV";
GRANT unlimited tablespace to "WCS7DEV";
Reference Links
Changing development database
http://publib.boulder.ibm.com/infocenter/wchelp/v7r0m0/topic/com.ibm.commerce.install.doc/tasks/tmgdevchgdb.htm
WebSphere commerce feature pack
http://publib.boulder.ibm.com/infocenter/wchelp/v7r0m0/topic/com.ibm.commerce.install.doc/concepts/cigfeaturepack.htm