Environment[indent]TS / OD 7.4.1 on W2K8 with DD and MS SQLServer 2008 R2[/indent]
Background[indent]Some time ago, my customer was successfully using DataDeploy.
Some time more recently (~ 6 months), it stopped working and nobody seemed to spend any time figuring out why (I was
not involved with the project at that time).
I'm now involved, and am trying to get things working again.[/indent]
Approach Taken[indent]Working on the hypothesis that the problem was the result of permission changes on the database side (nobody has any recollection of what might have happened / when, but there was sufficient "evidence" to make this a reasonable guess) - I had the customer create a new DB user ("ts_user" MS SQLServer account) and create a new database ("ddtest") owned by that user.
I then modified the database.xml and DD configuration files as necessary, created a filelist file with a single DCR listed as its contents, and ran a test from the W2K8 PowerShell (run as Administrator):
PS F:\> iwodcmd start ddconf -k "iwdd=submittlist" -k "area=/default/main/.../WORKAREA/wa" -k "filelist=f:/interwoven/teamsite/tmp/ddtest_flist"
Initially, the results looked promising when looking at the log file
...
DBD: Connected to [dbserver:1433;database=ddtest]
DBD: Creating identifier mapping table: IWOV_IDMAPS
DBD: CREATE TABLE IWOV_IDMAPS (TYPE INT NOT NULL, SHORTID VARCHAR(30) NOT NULL, LONGID VARCHAR(1024) NOT NULL)
DBD: Created identifier mapping table: IWOV_IDMAPS Successfully
DBD: Creating index on IWOV_IDMAPS
DBD: CREATE TABLE IWDELTRACKER ( PATH VARCHAR(255) NOT NULL , AREA VARCHAR(255) NOT NULL , KEYCOLNAME VARCHAR(255) NOT NULL , KEYCOLVALUE VARCHAR(255) NOT NULL )
DBD: CREATE INDEX iwdelt_idx ON IWDELTRACKER( PATH , AREA )
DBD: IWDELTRACKER created successfully.
It then proceeded to create the table specified in the deployment config file:
DBD: Table [newsdocumentejb] does not exist. Creating..
DBD: CREATE TABLE newsdocumentejb(TITLE VARCHAR(250) NOT NULL ,DESCRIPTION VARCHAR(1000) NOT NULL ,STARTDATE datetime NOT NULL ,EXPIRATIONDATE datetime NOT NULL ,PUBLICATIONDATE datetime NOT NULL ,CONTENT text NOT NULL ,SPECIALTY VARCHAR(50) NOT NULL ,ORGANIZATION VARCHAR(50) NOT NULL ,BUSINESSPARTNER VARCHAR(50) NOT NULL ,OBJECTID VARCHAR(250) NOT NULL , CONSTRAINT newsdocumentejb_key PRIMARY KEY (OBJECTID))
DBD: Running deployment [submitlist]
DBD: extraction type=full
DBD: tuple mode=wide
DBD: area=/default/main/.../News/WORKAREA/wa
DBD: filelist=[f:/Interwoven/TeamSite/tmp/ddtest_flist]
DBD: /default/main/.../News/WORKAREA/wa/templatedata/category/News/data/dcrname with spaces
DBD: Generate DirectoryContents start:Wed Apr 30 10:02:07 CDT 2014
DBD: Generate DirectoryContents end :Wed Apr 30 10:02:07 CDT 2014
DBD: Generate TDCRTupleProducer start:Wed Apr 30 10:02:07 CDT 2014
DBD: Generate TDCRTupleProducer end :Wed Apr 30 10:02:07 CDT 2014
DBD: Attempting to load class: IWRunTpl
DBD: Stat for group [newsdocumentejb]:
DBD: -----------------------------------
DBD: Rows inserted : 0
DBD: Rows updated : 0
DBD: Rows deleted : 0
DBD: Rows failed : 0
DBD: Rows rolled back : 0
DBD: Rows skipped : 0
DBD: -----------------------------------
DBD: Event reporting turned off
DBD: Committing database [jxmssqlt1:1433;database=ddtest]...
DBD: Deployment[submitlist]
DBD: -----------------------------------
DBD: DCRs inserted : 0
DBD: DCRs updated : 0
DBD: DCRs deleted : 0
DBD: DCRs failed : 0
DBD: DCRs rolled back : 0
DBD: DCRs skipped : 0
DBD: -----------------------------------
At this point, I'm not crazy about all the 0's - but the command line is still "running" and the deployment appears to still be running too - but it doesn't seem to be doing anything.
Does the above look like the issue could be with their custom TuplePreprocessor ("IWRunTpl")? Or does it look like its past that point and hanging somewhere else?
I was not involved in writing the custom TuplePreprocessor - but taking a quick look at the code I notice there are a number of "debugging" statements like:
...
String oid = (String) input.get("Metadata/0/Object ID");
...
System.err.println("Running against OID " + oid);
...
Does anyone know where such debugging output would show up?
I'm thinking that it's ODHOME/od.err (looking at their old production server) unfortunately, the only dates I see in the current server's od.err file are about 1 month old, but it doesn't look like the entries get dated too often, so it's possible the exceptions I'm seeing
are relevant:
Exception in thread "Thread-16" java.lang.NoClassDefFoundError: org/apache/oro/text/regex/MalformedPatternException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:171)
at com.interwoven.dd100.dd.TExternalTupleProcessorHandler.LoadOneUserClass(TExternalTupleProcessorHandler.java:139)
at com.interwoven.dd100.dd.TExternalTupleProcessorHandler.LoadUserClass(TExternalTupleProcessorHandler.java:113)
at com.interwoven.dd100.dd.TExternalTupleProcessorHandler.ProcessTuple(TExternalTupleProcessorHandler.java:48)
at com.interwoven.dd100.dd.TTuplePreProcessor.WriteTuple(TTuplePreProcessor.java:36)
at com.interwoven.dd100.dd.TConsumerManager.WriteConsumerInternal(TConsumerManager.java:399)
at com.interwoven.dd100.dd.TConsumerManager.WriteConsumers(TConsumerManager.java:388)
at com.interwoven.dd100.dd.TAgentClient.DoOneTeamSiteSource(TAgentClient.java:1083)
at com.interwoven.dd100.dd.TAgentClient.ProcessOneFileList(TAgentClient.java:637)
at com.interwoven.dd100.dd.TAgentClient.ProcessFileList(TAgentClient.java:594)
at com.interwoven.dd100.dd.TAgentClient.DoTeamSiteSources(TAgentClient.java:539)
at com.interwoven.dd100.dd.TAgentClient.DoOneDeployment(TAgentClient.java:290)
at com.interwoven.dd100.dd.TAgentClient.Go(TAgentClient.java:181)
at com.interwoven.dd100.dd.IWDataDeploy.Go(IWDataDeploy.java:601)
at com.interwoven.dd100.dd.TDASThread.ProcessItem(TDASThread.java:203)
at com.interwoven.dd100.dd.TDASThread.run(TDASThread.java:128)
Caused by: java.lang.ClassNotFoundException: org.apache.oro.text.regex.MalformedPatternException
at com.interwoven.deploy.cdmain.IWCDClassLoader.loadClass(IWCDClassLoader.java:577)
at com.interwoven.deploy.cdmain.IWCDClassLoader.loadClass(IWCDClassLoader.java:448)
... 17 more
[/indent]I'm going to start pursuing it from there, but if anyone has additional pointers / suggestions - feel free.
I'm especially concerned about where one would adjust the class path, or if I need to just make sure the other libraries are in ODHOME/usrlib as well.