hi,
I've created a server job that basically is:
folder-stage(all .xml-files, which is mostly only one)
xml-input stage with 3 different outputs (different key-column)
this data is then loaded in 3 oracle-stages
these stages are then again read and linked to a transformer which is again writing to an oracle stage.
In the log I get warnings like:DataStage Job 448 Phantom 19107
Program "DSD.StageRun": Line 301, Square root of a negative number.
DataStage Phantom Finished.
However: I'm not doing any mathematical function, there's even no function being used .
Any idea's? I know I can just suppress the message, but I would like to have an idea of what is happening.
Is there any way I can find the file where it is giving problems at 'line 301' (like the generate OSH in the parallel jobs). I'm not really famiiliar with server-jobs, mostly working parallel.
Square root of a negative
Moderators: chulett, rschirm, roy
Hi,
I posted this info both here and @ ADN before.
Please use the search here to find how you get to the code you need.
It should be in the RT_BPnnn directory where nnn is your job id.
(in your case 448)
IHTH,
I posted this info both here and @ ADN before.
Please use the search here to find how you get to the code you need.
It should be in the RT_BPnnn directory where nnn is your job id.
(in your case 448)
IHTH,
Roy R.
Time is money but when you don't have money time is all you can afford.
Search before posting:)
Join the DataStagers team effort at:
http://www.worldcommunitygrid.org
Time is money but when you don't have money time is all you can afford.
Search before posting:)
Join the DataStagers team effort at:
http://www.worldcommunitygrid.org
Actually, in this case the program is DSD.StageRun - I looked at the compiled code and there is no SQRT statement to be found anywhere in there. Can you clear the &PH& subdirectory before your run and then look at the {text} files in there after an aborted run to see if there is any additional information?
<a href=http://www.worldcommunitygrid.org/team/ ... TZ9H4CGVP1 target="WCGWin">
</a>
</a>
ok,
I did the search on the square root part, this didn't show anything. It was only while writing the post I thought about the question where to find the code.
Still with the code it does not become clear. (there is no line 301)
I did the search on the square root part, this didn't show anything. It was only while writing the post I thought about the question where to find the code.
Still with the code it does not become clear. (there is no line 301)
Code: Select all
more JOB.1061193054.DT.1373958241.TRANS1
* Tokens were replaced below as follows:
* JobParam%%1 <= OUTDIR
* Pin%%V0S31P1.Column%%1 <= vod.VodItembroadcasterId
* Pin%%V0S31P1.Column%%2 <= vod.contentRef
* Pin%%V0S31P1.Column%%3 <= vod.VodItemid
* Pin%%V0S31P1.Column%%4 <= vod.nodeRefList
* Pin%%V0S31P1.Column%%5 <= vod.previewDate
* Pin%%V0S31P1.Column%%6 <= vod.viewingLimit
* Pin%%V0S31P1.Column%%7 <= vod.viewingWindow
* Pin%%V0S31P1.Column%%8 <= vod.VodItemPeriodduration
* Pin%%V0S31P1.Column%%9 <= vod.Periodend
* Pin%%V0S31P1.Column%%10 <= vod.Periodstart
* GET.Pin%%V0S31P1 <= GET.vod
* Pin%%V0S31P1.REJECTEDCODE <= vod.REJECTEDCODE
* Pin%%V0S31P2.Column%%1 <= contnet_lk.duration
* Pin%%V0S31P2.Column%%2 <= contnet_lk.Contentid
* Pin%%V0S31P2.Column%%3 <= contnet_lk.title
* GET.Pin%%V0S31P2 <= GET.contnet_lk
* Pin%%V0S31P2.REJECTEDCODE <= contnet_lk.REJECTEDCODE
* Pin%%V0S31P3.Column%%1 <= prod_lk.currency
* Pin%%V0S31P3.Column%%2 <= prod_lk.elemList
* Pin%%V0S31P3.Column%%3 <= prod_lk.price
* Pin%%V0S31P3.Column%%4 <= prod_lk.tax
* GET.Pin%%V0S31P3 <= GET.prod_lk
* Pin%%V0S31P3.REJECTEDCODE <= prod_lk.REJECTEDCODE
* Pin%%V0S31P4.Column%%1 <= DSLink37.VodItembroadcasterId
* Pin%%V0S31P4.Column%%2 <= DSLink37.contentRef
* Pin%%V0S31P4.Column%%3 <= DSLink37.VodItemid
* Pin%%V0S31P4.Column%%4 <= DSLink37.nodeRefList
* Pin%%V0S31P4.Column%%5 <= DSLink37.previewDate
* Pin%%V0S31P4.Column%%6 <= DSLink37.viewingLimit
* Pin%%V0S31P4.Column%%7 <= DSLink37.viewingWindow
* Pin%%V0S31P4.Column%%8 <= DSLink37.VodItemPeriodduration
* Pin%%V0S31P4.Column%%9 <= DSLink37.Periodend
* Pin%%V0S31P4.Column%%10 <= DSLink37.Periodstart
* Pin%%V0S31P4.Column%%11 <= DSLink37.duration
* Pin%%V0S31P4.Column%%12 <= DSLink37.title
* Pin%%V0S31P4.Column%%13 <= DSLink37.currency
* Pin%%V0S31P4.Column%%14 <= DSLink37.price
* Pin%%V0S31P4.Column%%15 <= DSLink37.tax
* PUT.Pin%%V0S31P4 <= PUT.DSLink37
* Pin%%V0S31P4.REJECTED <= DSLink37.REJECTED
* Pin%%V0S31P4.REJECTEDCODE <= DSLink37.REJECTEDCODE
*
* Subroutine for active stage import_lysis_xml.Transformer_31 generated at 13:33:48 31 AUG 2005
*
SUBROUTINE DSTransformerStage(HANDLES,ERROR)
$INCLUDE DSINCLUDE DSD_RTCONFIG.H
$INCLUDE DSINCLUDE DSD_STAGE.H
$INCLUDE DSINCLUDE DSD_BCI.H
$DEFINE JobParam%%1 STAGECOM.JOB.STATUS<7,1>
$INCLUDE DSINCLUDE JOBCONTROL.H
DEFFUN DSRLoadString(Num,Text,Args) CALLING '*DataStage*DSR_LOADSTRING'
$DEFINE Pin%%V0S31P1.Column%%1 STAGECOM.ARR(1)
$DEFINE Pin%%V0S31P1.Column%%2 STAGECOM.ARR(2)
$DEFINE Pin%%V0S31P1.Column%%3 STAGECOM.ARR(3)
$DEFINE Pin%%V0S31P1.Column%%4 STAGECOM.ARR(4)
$DEFINE Pin%%V0S31P1.Column%%5 STAGECOM.ARR(5)
$DEFINE Pin%%V0S31P1.Column%%6 STAGECOM.ARR(6)
$DEFINE Pin%%V0S31P1.Column%%7 STAGECOM.ARR(7)
$DEFINE Pin%%V0S31P1.Column%%8 STAGECOM.ARR(8)
$DEFINE Pin%%V0S31P1.Column%%9 STAGECOM.ARR(9)
$DEFINE Pin%%V0S31P1.Column%%10 STAGECOM.ARR(10)
$DEFINE GET.Pin%%V0S31P1 CALL $DSP.GetNext(1,Pin%%V0S31P1.REJECTEDCODE)
IF STAGECOM.TRACE.STATS THEN CALL $PERF.NAME(-2,'contnet_lk.Derivation')
$DEFINE Pin%%V0S31P2.Column%%1 STAGECOM.ARR(11)
$DEFINE Pin%%V0S31P2.Column%%2 STAGECOM.ARR(12)
$DEFINE Pin%%V0S31P2.Column%%3 STAGECOM.ARR(13)
$DEFINE GET.Pin%%V0S31P2 CALL $DSP.GetByKey(2,Pin%%V0S31P2.REJECTEDCODE)
IF STAGECOM.TRACE.STATS THEN CALL $PERF.NAME(-3,'prod_lk.Derivation')
$DEFINE Pin%%V0S31P3.Column%%1 STAGECOM.ARR(14)
$DEFINE Pin%%V0S31P3.Column%%2 STAGECOM.ARR(15)
$DEFINE Pin%%V0S31P3.Column%%3 STAGECOM.ARR(16)
$DEFINE Pin%%V0S31P3.Column%%4 STAGECOM.ARR(17)
$DEFINE GET.Pin%%V0S31P3 CALL $DSP.GetByKey(3,Pin%%V0S31P3.REJECTEDCODE)
IF STAGECOM.TRACE.STATS THEN CALL $PERF.NAME(-4,'DSLink37.Derivation')
$DEFINE Pin%%V0S31P4.Column%%1 STAGECOM.ARR(1)
$DEFINE Pin%%V0S31P4.Column%%2 STAGECOM.ARR(2)
$DEFINE Pin%%V0S31P4.Column%%3 STAGECOM.ARR(3)
$DEFINE Pin%%V0S31P4.Column%%4 STAGECOM.ARR(4)
$DEFINE Pin%%V0S31P4.Column%%5 STAGECOM.ARR(5)
$DEFINE Pin%%V0S31P4.Column%%6 STAGECOM.ARR(6)
$DEFINE Pin%%V0S31P4.Column%%7 STAGECOM.ARR(7)
$DEFINE Pin%%V0S31P4.Column%%8 STAGECOM.ARR(8)
$DEFINE Pin%%V0S31P4.Column%%9 STAGECOM.ARR(9)
$DEFINE Pin%%V0S31P4.Column%%10 STAGECOM.ARR(10)
$DEFINE Pin%%V0S31P4.Column%%11 STAGECOM.ARR(11)
$DEFINE Pin%%V0S31P4.Column%%12 STAGECOM.ARR(13)
$DEFINE Pin%%V0S31P4.Column%%13 STAGECOM.ARR(14)
$DEFINE Pin%%V0S31P4.Column%%14 STAGECOM.ARR(16)
$DEFINE Pin%%V0S31P4.Column%%15 STAGECOM.ARR(17)
$DEFINE PUT.Pin%%V0S31P4 CALL $DSP.Put(4, Pin%%V0S31P4.REJECTEDCODE)
UPDATE.COUNT = STAGECOM.RATE
LOOP
REJECTED = @TRUE
* Get next row from primary input pin vod
STAGECOM.PINNO = 1
GET.Pin%%V0S31P1
ERROR = Pin%%V0S31P1.REJECTEDCODE
WHILE NOT(ERROR)
* Primary Key derivation code for pin contnet_lk
STAGECOM.PINNO = 2
IF STAGECOM.TRACE.STATS THEN CALL $PERF.BEGIN(-2)
Pin%%V0S31P2.Column%%2 = Pin%%V0S31P1.Column%%2
IF STAGECOM.TRACE.STATS THEN CALL $PERF.END(-2)
GET.Pin%%V0S31P2
* Primary Key derivation code for pin prod_lk
STAGECOM.PINNO = 3
IF STAGECOM.TRACE.STATS THEN CALL $PERF.BEGIN(-3)
Pin%%V0S31P3.Column%%2 = Pin%%V0S31P1.Column%%3
IF STAGECOM.TRACE.STATS THEN CALL $PERF.END(-3)
GET.Pin%%V0S31P3
STAGECOM.PINNO = 4
* This is the first link in this TXN group, start the transaction.
IF BCICOM.TXGROUPSTATUS<4,1> = "" OR BCICOM.TXGROUPSTATUS<4,1> = 0 THEN
TXSTATUS = 0
CALL $DSP.TxnStart(4, TXSTATUS)
IF TXSTATUS = TXNStarted THEN BCICOM.TXGROUPSTATUS<4,1> = TXSTATUS
BCICOM.TXGROUPSTATUS<4,2> = 4 ;* Pin handle
END
Pin%%V0S31P4.REJECTEDCODE = 0
IF BCICOM.TXGROUPSTATUS<4,1> = TXNStarted THEN
IF STAGECOM.TRACE.STATS THEN CALL $PERF.BEGIN(-4)
IF @TRUE THEN
* Column derivation code for pin DSLink37
Pin%%V0S31P4.REJECTED = @FALSE
IF STAGECOM.TRACE.STATS THEN CALL $PERF.END(-4)
PUT.Pin%%V0S31P4
IF NOT(Pin%%V0S31P4.REJECTEDCODE) THEN
REJECTED = @FALSE
END ELSE
Pin%%V0S31P4.REJECTED = @TRUE
* TXN Continue on SQL write failure
END
END
ELSE
Pin%%V0S31P4.REJECTED = @TRUE
Pin%%V0S31P4.REJECTEDCODE = 0
* TXN Continue on link constraint failure
END
END
FOR I = 4 TO 4
BEGIN CASE
CASE BCICOM.TXGROUPSTATUS<I,1> = TXNCommitted OR BCICOM.TXGROUPSTATUS<I,1> = TXNAborted
BCICOM.TXGROUPSTATUS<I,1> = ""
CASE BCICOM.TXGROUPSTATUS<I,1> <> ""
BCICOM.TXGROUPSTATUS<I,1> = TXNStarted
END CASE
NEXT I
UPDATE.COUNT -= 1
IF UPDATE.COUNT LE 0 THEN CALL DSD.Update(HANDLES);UPDATE.COUNT = STAGECOM.RATE
REPEAT
IF (ERROR = DSE.EOF) or (ERROR = DSE.EOT) THEN
TXSTATUS = 0
* Transaction size is 0 - commit pending rows.
CALL $DSP.TxnCommit(4, TXSTATUS)
END
RETURN
END
Searching reveals four other posts going back over two years where people have seen this error message. They all seem to have something in common - XML on Sun Solaris. It was acknowledged as a bug by Ascential and supposedly on their fix list. Doesn't sound like it ever was.jasper wrote:I did the search on the square root part, this didn't show anything.
Now, if you're not runnng on a Sun platform...
-craig
"You can never have too many knives" -- Logan Nine Fingers
"You can never have too many knives" -- Logan Nine Fingers
-
- Participant
- Posts: 3593
- Joined: Thu Jan 23, 2003 5:25 pm
- Location: Australia, Melbourne
- Contact:
I was told by Ascential support that it was a known defect in the XML Input stage on Solaris and we could just ignore it. Posted this same message some months back when someone else asked the same question. Doesn't cause any harm to your data, it's just a nuisance that may result in your support staff missing a more important warning message in that job.
Certus Solutions
Blog: Tooling Around in the InfoSphere
Twitter: @vmcburney
LinkedIn:Vincent McBurney LinkedIn
Blog: Tooling Around in the InfoSphere
Twitter: @vmcburney
LinkedIn:Vincent McBurney LinkedIn