Bursting problem :: AIX :: NullPointerException
Hi,
I got stucked with BI publisher, and I didn't find solution.
We run OBIEE on AIX, and I tried bursting on a simple query.
The dataset:
select id,name from company
The bursting query:
select
d.id KEY,
'New Template 1' TEMPLATE,
'RTF' TEMPLATE_FORMAT,
'en-US' LOCALE,
'PDF' OUTPUT_FORMAT,
'FILE' DEL_CHANNEL,
'/oraclebitest/oraclebi/xmlp/XMLP' PARAMETER1,
d.id || '.pdf' PARAMETER2
from
company d
Split by:
*/ROWSET/ROW/ID*
I executed the burst, and it failed with every single row (company).
The error log was this (alike, i've changed the key in the bursting select from name to id, but it failed again):
[103009_033940669][][STATEMENT] Logger.init(): *** DEBUG MODE IS ON. ***
[103009_033940670][][STATEMENT] Logger.init(): LogDir=/tmp
[103009_033940754][][STATEMENT] Template parsing started...
[103009_033940792][][STATEMENT] Data Template ......
[103009_033940793][][STATEMENT] oracle.xml.parser.v2.XMLDocument@10bd10bd
[103009_033940799][][STATEMENT] Inside parameterParser...
[103009_033940799][][STATEMENT] Inside dataQueryParser...
[103009_033940813][][STATEMENT] Template parsing completed...
[103009_033940815][][STATEMENT] include_parameters=false
[103009_033940816][][STATEMENT] Start process Data
[103009_033940817][][STATEMENT] Process Data ...
[103009_033940817][][STATEMENT] Writing Data ...
[103009_033940819][][STATEMENT] Sql Query : select nev from bi_kir_ceg
[103009_033941075][][EVENT] Data Generation Completed...
[103009_033941076][][EVENT] Total Data Generation Time 0.0 seconds
[103009_033941697][][STATEMENT] Oracle XML Parser version ::: Oracle XML Developers Kit 10.1.3.130 - Production
[103009_033941732][][STATEMENT] Logger.init(): *** DEBUG MODE IS ON. ***
[103009_033941732][][STATEMENT] Logger.init(): LogDir=/tmp
[103009_033941820][][STATEMENT] Template parsing started...
[103009_033942043][][STATEMENT] Data Template ......
[103009_033942043][][STATEMENT] oracle.xml.parser.v2.XMLDocument@589b589b
[103009_033942044][][STATEMENT] Inside parameterParser...
[103009_033942045][][STATEMENT] Inside dataQueryParser...
[103009_033942045][][STATEMENT] Template parsing completed...
[103009_033942046][][STATEMENT] include_parameters=false
[103009_033942047][][STATEMENT] Start process Data
[103009_033942047][][STATEMENT] Process Data ...
[103009_033942047][][STATEMENT] Writing Data ...
[103009_033942048][][STATEMENT] Sql Query : select
d.nev KEY,
'New Template 1' TEMPLATE,
'RTF' TEMPLATE_FORMAT,
'hu-HU' LOCALE,
'PDF' OUTPUT_FORMAT,
'FILE' DEL_CHANNEL,
'/oraclebitest/oraclebi/xmlp/XMLP' PARAMETER1,
d.nev || '.pdf' PARAMETER2
from
bi_kir_ceg d
[103009_033942813][][EVENT] Data Generation Completed...
[103009_033942813][][EVENT] Total Data Generation Time 1.0 seconds
[103009_033942836][][STATEMENT] /Configuration/xdo.cfg not found.
[103009_033946086][oracle.apps.xdo.servlet.scheduler.XDOJob][STATEMENT] [ID:8] Tmp dir for bursting : /oraclebitest/oraclebi/oc4j_bi/j2ee/home/applications/xmlpserver/xmlpserver/xdo/tmp/
[103009_033946087][oracle.apps.xdo.servlet.scheduler.XDOJob][STATEMENT] [ID:8] [Bursting node]=[ROWSET/ROW/NEV], [Delivery node]=[ROWSET/ROW/NEV]
[103009_033946746][oracle.apps.xdo.servlet.scheduler.XDOJob][STATEMENT] [ID:8] Layout template : [name]=[New Template], [rtf], [location]=[oraclebitest/oraclebi/oc4j_bi/j2ee/home/applications/xmlpserver/xmlpserver/xdo/cache/xmlp83650993.tmp]
[103009_033946751][][STATEMENT] /oraclebitest/oraclebi/oc4j_bi/j2ee/home/applications/xmlpserver/xmlpserver/xdo/tmp/
[103009_033946792][][STATEMENT] BurstingProcessor:Property Key=>xslt._XDOTIMEZONE : value=>'Africa/Algiers'
[103009_033946793][][STATEMENT] BurstingProcessor:Property Key=>xdk-secure-io-mode : value=>true
[103009_033946793][][STATEMENT] BurstingProcessor:Property Key=>xslt._XDOCALENDAR : value=>'GREGORIAN'
[103009_033946794][][STATEMENT] BurstingProcessor:Property Key=>xslt._XDOLOCALE : value=>'hu_HU'
[103009_033946831][oracle.apps.xdo.batch.BurstingProcessorEngine][STATEMENT] ========================> startElement() ::: startDocument is entered <========================
[103009_033946835][][EXCEPTION] java.lang.NullPointerException
at oracle.apps.xdo.batch.bursting.ProcessEnterpriseDocument.processLayout(Unknown Source)
at oracle.apps.xdo.batch.BurstingProcessorEngine.addDocument2Queue(Unknown Source)
at oracle.apps.xdo.batch.BurstingProcessorEngine.createBurstingDocument(Unknown Source)
at oracle.apps.xdo.batch.BurstingProcessorEngine.globalDataEndElement(Unknown Source)
at oracle.apps.xdo.batch.BurstingProcessorEngine.endElement(Unknown Source)
at oracle.xml.parser.v2.XMLContentHandler.endElement(XMLContentHandler.java:210)
at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1318)
at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:336)
at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:303)
at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:263)
at oracle.apps.xdo.batch.BurstingProcessorEngine.burstingRequest(Unknown Source)
at oracle.apps.xdo.batch.BurstingProcessorEngine.process(Unknown Source)
at oracle.apps.xdo.servlet.scheduler.XDOJob.runBurstingReport(XDOJob.java:1994)
at oracle.apps.xdo.servlet.scheduler.XDOJob.execute(XDOJob.java:358)
at org.quartz.core.JobRunShell.run(JobRunShell.java:195)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
[103009_034051143][][EXCEPTION] java.lang.NullPointerException
at oracle.apps.xdo.batch.bursting.ProcessEnterpriseDocument.processLayout(Unknown Source)
at oracle.apps.xdo.batch.BurstingProcessorEngine.addDocument2Queue(Unknown Source)
at oracle.apps.xdo.batch.BurstingProcessorEngine.createBurstingDocument(Unknown Source)
at oracle.apps.xdo.batch.BurstingProcessorEngine.globalDataEndElement(Unknown Source)
at oracle.apps.xdo.batch.BurstingProcessorEngine.endElement(Unknown Source)
at oracle.xml.parser.v2.XMLContentHandler.endElement(XMLContentHandler.java:210)
at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1318)
at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:336)
at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:303)
at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:263)
at oracle.apps.xdo.batch.BurstingProcessorEngine.burstingRequest(Unknown Source)
at oracle.apps.xdo.batch.BurstingProcessorEngine.process(Unknown Source)
at oracle.apps.xdo.servlet.scheduler.XDOJob.runBurstingReport(XDOJob.java:1994)
at oracle.apps.xdo.servlet.scheduler.XDOJob.execute(XDOJob.java:358)
at org.quartz.core.JobRunShell.run(JobRunShell.java:195)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
[103009_034051624][oracle.apps.xdo.batch.BurstingProcessorEngine][STATEMENT] ========================> startElement() ::: endDocument is entered <========================
[103009_034051895][][STATEMENT] Write connection pool max:10, min:5, total:5, available:5
[103009_034053802][][STATEMENT] ToplinkDataHandler.terminateSession() : releasing the session.
[103009_034058513][][STATEMENT] /oraclebitest/oraclebi/oc4j_bi/j2ee/home/applications/xmlpserver/xmlpserver/xdo/tmp//103009_033946756 deleted successfully...
[103009_034058522][][STATEMENT] [ID:8] Time elapsed for bursting : 87868, time from beggining : 88542
[103009_034058522][][STATEMENT] [ID:8] Time elapsed for notification : 0, time from beggining : 88542
[103009_034058523][oracle.apps.xdo.servlet.scheduler.XDOJob][STATEMENT] [ID:8] Scheduler finished the job. Exiting...
[103009_034130015][][STATEMENT] ToplinkDataHandler.getOutput() : called
[103009_034130016][][STATEMENT] Read connection pool max:20, min:5, total:5, available:5
[103009_034130017][][STATEMENT] Read connection pool max:20, min:5, total:5, available:5
[103009_034130017][][STATEMENT] ToplinkDataHandler.queryOutput() : calling executeQuery().
[103009_034130055][][STATEMENT] ToplinkDataHandler.queryOutput() : finished calling executeQuery().
[103009_034130366][][STATEMENT] ToplinkDataHandler.terminateSession() : releasing the session.
[103009_034135802][][STATEMENT] ToplinkDataHandler.getOutput() : called
[103009_034135803][][STATEMENT] ToplinkDataHandler.getOutput() : obtaining client session.
[103009_034135803][][STATEMENT] Read connection pool max:20, min:5, total:5, available:5
[103009_034135804][][STATEMENT] Read connection pool max:20, min:5, total:5, available:5
[103009_034135804][][STATEMENT] ToplinkDataHandler.queryOutput() : calling executeQuery().
[103009_034135836][][STATEMENT] ToplinkDataHandler.queryOutput() : finished calling executeQuery().
[103009_034135867][][STATEMENT] ToplinkDataHandler.terminateSession() : releasing the session.
[103009_034135867][][STATEMENT] ToplinkDataHandler.getJobs() : called.
[103009_034135867][][STATEMENT] ToplinkDataHandler.getJobs() : obtaining client session.
[103009_034135868][][STATEMENT] Read connection pool max:20, min:5, total:5, available:5
[103009_034135868][][STATEMENT] Read connection pool max:20, min:5, total:5, available:5
[103009_034135868][][STATEMENT] ToplinkDataHandler.queryJobs() : calling executeQuery().
[103009_034135911][][STATEMENT] ToplinkDataHandler.queryJobs() : finished calling executeQuery().
[103009_034135912][][STATEMENT] ToplinkDataHandler.terminateSession() : releasing the session.
[103009_034332894][][STATEMENT] XDO Servlet shutdown complete.
Thanks a lot,
Andras
I don't think the bursting engine can find the format template. Check the locale on your format template and the locale for the bursting parameters to see if they match.
103009_033946835][EXCEPTION java.lang.NullPointerException
at oracle.apps.xdo.batch.bursting.ProcessEnterpriseDocument.processLayout(Unknown Source)
Ike Wiggins
http://bipublisher.blogspot.com
Similar Messages
-
BI Publisher report bursting problem
I am not able to make my report burst to separate files for ftp delivery. I am running BI Publisher version 10.1.3.4.1 (stand-alone). My data query looks like this:
select a.agency_id, b.borr_name
from agency_tbl a, borr_tbl b
where a.rpt_date >= 20100101 and a.rpt_date <= 20100110
and a.borr_id = b.borr_id
and a.agency_id in (80013,80019)
order by a.agency_id, b.borr_name
My bursting/delivery query looks like this:
select agency_id "KEY",
'mytemplate' as TEMPLATE,
'RTF' TEMPLATE_FORMAT,
'en-US' LOCALE,
'PDF' OUTPUT_FORMAT,
'FTP' DEL_CHANNEL,
'myserver' PARAMETER1,
'myid' PARAMETER2,
'mypwd' PARAMETER3,
'/home1/web-docs-443/files/pdffiles' PARAMETER4,
convert(varchar,agency_id) || '.pdf' PARAMETER5
from agency_tbl
where agency_id in (80013,80019)
and rpt_date >= 20100101 and rpt_date <= 20100110
(I have to put "KEY" in quotes because my database is sybase, and KEY is a reserved word.)
I have verified that both queries return data (6 records each, no null agency_id keys).
The goal is to create a file for each agency that lists their associated borrowers.
I can view the report without problems. But when I schedule the report and enable bursting, I get the "Job was failed" email notification, and the report history shows this:
Job Execution Information
History ID 218
Status Failed
Start Processing Time 3/21/11 10:27 AM
End Processing Time 3/21/11 10:27 AM
Time Elapsed 1.68 sec
System Message oracle.apps.xdo.servlet.scheduler.ProcessingException: java.lang.NullPointerException
at oracle.apps.xdo.servlet.scheduler.XDOJob.runBurstingReport(XDOJob.java:2116)
at oracle.apps.xdo.servlet.scheduler.XDOJob.execute(XDOJob.java:358)
at org.quartz.core.JobRunShell.run(JobRunShell.java:195)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
Caused by: java.lang.NullPointerException
at com.sun.java.util.collections.Hashtable.containsKey(Hashtable.java:300)
at oracle.apps.xdo.batch.bursting.DeliveryXMLParser.processRow(Unknown Source)
at oracle.apps.xdo.batch.bursting.DeliveryXMLParser.endDeliveryInfoElement(Unknown Source)
at oracle.apps.xdo.batch.bursting.DeliveryXMLParser.endElement(Unknown Source)
at oracle.xml.parser.v2.XMLContentHandler.endElement(XMLContentHandler.java:210)
at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1318)
at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:336)
at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:303)
at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:263)
at oracle.apps.xdo.batch.bursting.DeliveryXMLParser.getDeliveryChannels(Unknown Source)
at oracle.apps.xdo.batch.BurstingProcessorEngine.createEnterpriseReportRequest(Unknown Source)
at oracle.apps.xdo.batch.BurstingProcessorEngine.setDeliveryControlFile(Unknown Source)
at oracle.apps.xdo.servlet.scheduler.XDOJob.runBurstingReport(XDOJob.java:1916)
... 3 more
Bursting Definitions
Bursting Node /ROWSET/ROW/agency_id
Delivery Node /ROWSET/ROW/agency_id
Any help will be greatly appreciated. This has me stumped . . . I am out of ideas.What caused our bursting problem:
We had to put the word "KEY" in quotes (in our bursting query), because KEY is a reserved word in sybase. But putting it in quotes caused a problem - the results of the bursting query did not contain a "KEY" tag.
. . . And the solution:
We added the connection property "GET_COLUMN_LABEL_FOR_NAME=true" to our sybase datasource definition. Many thanks to Tim Dexter, and to Paul from the sybase forums (http://newsgroupstats.info/article/forums.sybase.com/sybase.public.jconnect/2308/Column-aliases-not-working.html) c. 2007.
And thanks again to Jorge for the helpful suggestion.
Steve Z. -
Hi all, i've understood the bursting problem i'he had since my first tests on it, i've posted a couple of threads but without any results. Now i've found the reason and it is very very strange.
As i wrote in my threads my test was made on a single (an sample query) with a simple rtf layout and this test was succesfully; after that i've tried the same report but using a data template instead of sql query. Panic !!! 2 errors in the log file and bursting not working. Now i can tell you that the problem is .... the data template name. Yes if my first line is
dataTemplate name="ROWS".... all works fine,
dataTemplate name="ROWSE".... all works fine,
dataTemplate name="ROWSET" .... all works fine,
dataTemplate name="ROWSETxxxxx"... all works fine.
ANY OTHER dataTemplate name does'nt work at all (error) or bad bursting features.
I need to know if this is a bug and if there are any workarounds.
ThanksHi all, i've understood the bursting problem i'he had since my first tests on it, i've posted a couple of threads but without any results. Now i've found the reason and it is very very strange.
As i wrote in my threads my test was made on a single (an sample query) with a simple rtf layout and this test was succesfully; after that i've tried the same report but using a data template instead of sql query. Panic !!! 2 errors in the log file and bursting not working. Now i can tell you that the problem is .... the data template name. Yes if my first line is
dataTemplate name="ROWS".... all works fine,
dataTemplate name="ROWSE".... all works fine,
dataTemplate name="ROWSET" .... all works fine,
dataTemplate name="ROWSETxxxxx"... all works fine.
ANY OTHER dataTemplate name does'nt work at all (error) or bad bursting features.
I need to know if this is a bug and if there are any workarounds.
Thanks -
Pro*C 8051 problem AIX -- Linux
Hello. This is my problem trying to port an application from AIX
to Linux.
I installed redhat 6.0 on PII350 128Mb ram. kernel 2.2.5
I installed Oracle 8051 enterprise edition, the glibcpatch,
inserted
the defines:
define=_STDIO_H
define=_STRING_H
define=_STDLIB_H
into pcscfg file
I am able to compile the sample files (I tried for sample1 and
sample2, inserting the size_t definition into .pc files) so pro*C
is ok.
Trying to porting from AIX 4.3.2 to linux an application:
I inserted the demo_proc.mk file for settings into the original.
I run:
make -r VER=linux -f bz201l.mk \
/aixdev/S6/security/lib/liblinux/bz201l.a
Into the original .pc file there were
#include <stdarg.h>
#include <stddef.h>
and leaving them inside I got
Error at line 29, column 10 in file
/aixdev/S6/security/source/bz201l00.pc
#include <stdarg.h>
.........1
PCC-S-02015, unable to open include file
So I cut them from the .pc file and so:
Syntax error at line 23, column 48, file ../include/bz201.h:
Error at line 23, column 48 in file ../include/bz201.h
void(*)(),void(*)() , FILE *, ...);
...............................................1
PCC-S-02201, Encountered the symbol "FILE" when expecting one of
the following:
... auto, char, const, double, enum, float, int, long,
OCIBFileLocator OCIBlobLocator, OCIClobLocator, OCIDate,
OCINumber, OCIRaw, OCIString, register, short, signed,
sql_context, sql_cursor, static, struct, union, unsigned,
varchar, void, volatile, a typedef name, exec oracle, exec,
exec sql, exec sql begin, exec sql type, exec sql var,
The symbol "enum," was substituted for "FILE" to continue.
What is the problem? I have to add other define in pcscfg.cfg
file?
The header file bz201.h is below
*BZ201.h - definitions/declarations for BZ201_AcceptSqlcode
routine
*Purpose:
* This file defines the values and functions
* used for BZ201_AcceptSqlcode routine.
#ifndef BZ201_END_PARM_LIST
#define BZ201_END_PARM_LIST 0xF0F0F0F0,__LINE__,__FILE__
#endif
/* function prototypes */
void BZ201_AcceptWSqlcode(
void(*)(),void(*)() , FILE *, ...);
if I don't eliminate the stddef and stdarg definitions, but
add to the proc command line include= setting also these two
directories
/usr/i386-glibc20-linux/include/linux and
/usr/lib/gcc-lib/i386-glibc20-linux/egcs-2.90.29/include
I have not the errors for the stddef and stdarg but I get an
error inside the time.h header
Syntax error at line 135, column 15, file /usr/include/time.h:
Error at line 135, column 15 in file /usr/include/time.h
extern size_t strftime __P ((char *__restrict __s, size_t
__maxsize,
..............1
PCC-S-02201, Encountered the symbol "strftime" when expecting one
of the following:
and then also the one reported above in the first case for the
bz201.h header (also with a core dumped after segm fault).
Anyone knows how to set correctly the include dirs and/or the
pcscfg.cfg file?
Thanks in advance and sorry for the lenght of the message.
Gianluca
nullGianluca Cecchi (guest) wrote:
: Hello. This is my problem trying to port an application from
AIX
: to Linux.
: I installed redhat 6.0 on PII350 128Mb ram. kernel 2.2.5
: I installed Oracle 8051 enterprise edition, the glibcpatch,
: inserted
: the defines:
: define=_STDIO_H
: define=_STRING_H
: define=_STDLIB_H
: into pcscfg file
: I am able to compile the sample files (I tried for sample1 and
: sample2, inserting the size_t definition into .pc files) so
pro*C
: is ok.
: Trying to porting from AIX 4.3.2 to linux an application:
: I inserted the demo_proc.mk file for settings into the
original.
: I run:
: make -r VER=linux -f bz201l.mk \
: /aixdev/S6/security/lib/liblinux/bz201l.a
: Into the original .pc file there were
: #include <stdarg.h>
: #include <stddef.h>
: and leaving them inside I got
: Error at line 29, column 10 in file
: /aixdev/S6/security/source/bz201l00.pc
: #include <stdarg.h>
: .........1
: PCC-S-02015, unable to open include file
: So I cut them from the .pc file and so:
: Syntax error at line 23, column 48, file ../include/bz201.h:
: Error at line 23, column 48 in file ../include/bz201.h
: void(*)(),void(*)() , FILE *, ...);
: ...............................................1
: PCC-S-02201, Encountered the symbol "FILE" when expecting one
of
: the following:
: ... auto, char, const, double, enum, float, int, long,
: OCIBFileLocator OCIBlobLocator, OCIClobLocator, OCIDate,
: OCINumber, OCIRaw, OCIString, register, short, signed,
: sql_context, sql_cursor, static, struct, union, unsigned,
: varchar, void, volatile, a typedef name, exec oracle, exec,
: exec sql, exec sql begin, exec sql type, exec sql var,
: The symbol "enum," was substituted for "FILE" to continue.
: What is the problem? I have to add other define in pcscfg.cfg
: file?
: The header file bz201.h is below
: *BZ201.h - definitions/declarations for BZ201_AcceptSqlcode
: routine
: *Purpose:
: * This file defines the values and functions
: * used for BZ201_AcceptSqlcode routine.
: #ifndef BZ201_END_PARM_LIST
: #define BZ201_END_PARM_LIST 0xF0F0F0F0,__LINE__,__FILE__
: #endif
: /* function prototypes */
: void BZ201_AcceptWSqlcode(
: void(*)(),void(*)() , FILE *, ...);
: if I don't eliminate the stddef and stdarg definitions, but
: add to the proc command line include= setting also these two
: directories
: /usr/i386-glibc20-linux/include/linux and
: /usr/lib/gcc-lib/i386-glibc20-linux/egcs-2.90.29/include
: I have not the errors for the stddef and stdarg but I get an
: error inside the time.h header
: Syntax error at line 135, column 15, file /usr/include/time.h:
: Error at line 135, column 15 in file /usr/include/time.h
: extern size_t strftime __P ((char *__restrict __s, size_t
: __maxsize,
: ..............1
: PCC-S-02201, Encountered the symbol "strftime" when expecting
one
: of the following:
: and then also the one reported above in the first case for the
: bz201.h header (also with a core dumped after segm fault).
: Anyone knows how to set correctly the include dirs and/or the
: pcscfg.cfg file?
: Thanks in advance and sorry for the lenght of the message.
: Gianluca
Can I make a suggestion? I don't know too much about the Pro*C
compiler but I do know of some useful packages on Linux. It may
be possible to use a standard Linux package called "automake" to
port the code and set it up for use in a Linux environment. What
this package basically does is take input files and automatically
outputs properly made config files to setup the program depending
on which type of Unix you are porting it to. I would suggest you
take a look at it's documentation. Here is a good URL:
http://developer.gnome.org/tools/build.html
They have a tutorial on how to use the tools and they have some
other good links ;-)
Sincerely,
Kevin M.
null -
BI scheduler problem (AIX)
hi!
I've got a problem with configuring BI Scheduler. I followed the instructions, and it all seems fine, I can start the service, I can configure iBots, I can save them, they are in the database... but when I try to run one, it gives me this error message in the log file:
[Util Logger] Exception occured:
Severity:Not set
Type:const saw::Exception *
File:/net/sdcb80a022/vol1/users/anabuild/views/nightly/Sun/10134/AIX/vobs/080726.1900/analytics_web/main/project/ibotapi/ibotrpcproxy.cpp
Line:145
Message:Access denied.
What can be the problem?
ThxCan I ask the obvious -- is it not an permissions issue??!
Message:Access denied.
What user are you running as ? Does it have correct permissions on the hierarchy of folders of the application? -
Bursting Problem on EBS 11.5.10.2
Hi All,
I am trying to get the bursting working on EBS 11.5.10. What I am trying to achieve is to email invoice data to a supplier using the remittance email address held against the vendor site in EBS. I have looked at the Bursting 101 info on Gareth Roberts blog and have pretty much used the same logic. What I am getting is a single email sent to the first vendor with 1 attachment that has all the invoices in there.
My Control FIle is:
<?xml version="1.0" encoding="UTF-8"?>
<xapi:requestset xmlns:xapi="http://xmlns.oracle.com/oxp/xapi">
<xapi:request select="/XXAPXRCTIR/LIST_G_INVOICES/G_INVOICES">
<xapi:delivery>
<xapi:email server="smtpserver.somehwere.com" port="25" from="[email protected]" reply-to ="">
<xapi:message id="${INVOICE_ID}" to="${REMITTANCE_EMAIL}" cc="" attachment="true" subject="Recipient Created Tax Invoice ${INVOICE_NUMBER}">
Please find attached the Recipient Created Tax Invoice for Invoice Number ${INVOICE_NUMBER}.
</xapi:message>
</xapi:email>
</xapi:delivery>
<xapi:document output="RCTI_${INVOICE_ID}" output-type="pdf" delivery="${INVOICE_ID}">
<xapi:template type="rtf" location="xdo://XBOL.XXAPRCTIR_EMAIL.en.00/?getSource=true" filter=".//G_INVOICES[REMITTANCE_EMAIL != '']"></xapi:template>
</xapi:document>
</xapi:request>
</xapi:requestset>
And a sample of the XML data is:
<?xml version="1.0"?>
<!-- Generated by Oracle Reports version 6.0.8.27.0 -->
<XXAPRCTIR>
<LIST_G_INVOICES>
<G_INVOICES>
<VENDOR_COMPANY_NAME>A Business</VENDOR_COMPANY_NAME>
<VENDOR_ID>12438</VENDOR_ID>
<VENDOR_FORMATTED_ADDR>123 High St FERNTREE GULLY
VIC 3156 AU</VENDOR_FORMATTED_ADDR>
<VENDOR_ABN></VENDOR_ABN>
<REMITTANCE_EMAIL>email_address.com</REMITTANCE_EMAIL>
<INVOICE_ID>30578</INVOICE_ID>
<INVOICE_NUMBER>AI103407-FERNTREE GULLY-20080125</INVOICE_NUMBER>
<INVOICE_DATE>25-JAN-08</INVOICE_DATE>
<INVOICE_AMOUNT>3801.60</INVOICE_AMOUNT>
<INVOICE_CURRENCY_CODE>AUD</INVOICE_CURRENCY_CODE>
<TAX_NAME>10% GST</TAX_NAME>
<TAX_RATE>10</TAX_RATE>
<INVOICE_AMOUNT_MINUS_TAX>3456.00</INVOICE_AMOUNT_MINUS_TAX>
<TAX_AMOUNT>345.60</TAX_AMOUNT>
<LIST_G_INVOICE_LINES>
<G_INVOICE_LINES>
<PERSONNEL_NAME>Smith, Mr. Jim</PERSONNEL_NAME>
<EXPENDITURE_TYPE>9004 - Dir Contr Lab - Regular</EXPENDITURE_TYPE>
<WEEK_ENDING_DATE>25-JAN-2008</WEEK_ENDING_DATE>
<HOURS>40</HOURS>
<RATE>86.4</RATE>
<AMOUNT>3456.00</AMOUNT>
</G_INVOICE_LINES>
</LIST_G_INVOICE_LINES>
<CS_TOTAL_HRS>40</CS_TOTAL_HRS>
</G_INVOICES>
<G_INVOICES>
<VENDOR_COMPANY_NAME>Another Business</VENDOR_COMPANY_NAME>
<VENDOR_ID>11006</VENDOR_ID>
<VENDOR_FORMATTED_ADDR>456 Low Road
MT ELIZA
VIC 3930 AU</VENDOR_FORMATTED_ADDR>
<VENDOR_ABN></VENDOR_ABN>
<REMITTANCE_EMAIL></REMITTANCE_EMAIL>
<INVOICE_ID>30540</INVOICE_ID>
<INVOICE_NUMBER>AI102975-MT ELIZA-20080125</INVOICE_NUMBER>
<INVOICE_DATE>25-JAN-08</INVOICE_DATE>
<INVOICE_AMOUNT>935.09</INVOICE_AMOUNT>
<INVOICE_CURRENCY_CODE>AUD</INVOICE_CURRENCY_CODE>
<TAX_NAME>10% GST</TAX_NAME>
<TAX_RATE>10</TAX_RATE>
<INVOICE_AMOUNT_MINUS_TAX>850.08</INVOICE_AMOUNT_MINUS_TAX>
<TAX_AMOUNT>85.01</TAX_AMOUNT>
<LIST_G_INVOICE_LINES>
<G_INVOICE_LINES>
<PERSONNEL_NAME>West, Ms. Lucy</PERSONNEL_NAME>
<EXPENDITURE_TYPE>9004 - Dir Contr Lab - Regular</EXPENDITURE_TYPE>
<WEEK_ENDING_DATE>25-JAN-2008</WEEK_ENDING_DATE>
<HOURS>16</HOURS>
<RATE>53.13</RATE>
<AMOUNT>850.08</AMOUNT>
</G_INVOICE_LINES>
</LIST_G_INVOICE_LINES>
<CS_TOTAL_HRS>16</CS_TOTAL_HRS>
</G_INVOICES>
Any ideas would be greatly appreciatedThat would be right solved my own problem I did a typo in the Burst Control file XXAPXRCTIR should be XXAPRCTIR
-
JSP compiler problems/Weird NullPointerException in JSP
[weblogic 4.5.1 sp 10 on NT 4.0 sp4 w/Netscape 4.72, jdk 1.2.2]
I recently began trying to compile all of my jsp files externally rather
than depending on the dependency detection. Because I have multiple
levels of nested files included, I have had a lot of problems making the
compile work. For example, I have a subdirectory called include. Jsp
files in the include directory are included from the directory above
using '<%@ include file="include/filename.jsp" %>'. This works for one
level of nesting, but there are problems when a file in the include
subdirectory includes another file in the include subdirectory. Prior
to installing service packs, specifying 'include/secondfile.jsp' for the
file parameter worked. After service packs, this code had to be changed
to just plain 'secondfile.jsp'. Imagine my surprise when I started
compiling externally and only 'include/secondfile.jsp' would work. If I
ever touch a jsp file after compiling them all, then the compile invoked
by the JspServlet will NOT include secondfile unless I also modify the
include line before the compile happens. This is a MAJOR PAIN, and I
would like an explanation. How come invoking weblogic.jspc does
something different than invoking JspServlet through file timestamp
checking? Also, any ideas for a workaround?
This leads to my second really annoying problem. After compiling all
JSPs and restarting weblogic, I get a NullPointerException accessing a
static method in a particular class. Many pages display correctly until
this point in the processing, none of which access the problem class. A
log message before the static method call is printed. A try/catch block
surrounds the call. The first line in the static message prints another
log message. This static method log message is not reached, and the
try/catch block catches a NullPointerException. It seems the class
reference is null, a situation I have not previously encountered in
java. The generated java file looks fine, with no other code between
the log message and the static call. Now here is the rub - if I touch
the jsp file containing the class reference, with no code change,
weblogic recompiles it using JspServlet, and then everything works as
expected. It seems the external compilation is the only factor that
varies in the failure. I am quite frustrated trying to track this
'impossible to occur' exception. Any suggestions, advice, or
workarounds?
I have searched newsgroups and seen some similar behaviors reported, but
with no solutions. One person mentioned that the external compile
should take place with the current directory set to the root. This
fails completely to find the relative include files.
Bryan Helm
The includes only work if you invoke the compilation when you are on top of
the hierrcahy,
ex foo/bar.jsp
do a jspc foo/bar.jsp,
not cd foo
jscp bar.jsp
Bryan Helm <[email protected]> wrote in message
news:[email protected]...
> [weblogic 4.5.1 sp 10 on NT 4.0 sp4 w/Netscape 4.72, jdk 1.2.2]
>
> I recently began trying to compile all of my jsp files externally rather
> than depending on the dependency detection. Because I have multiple
> levels of nested files included, I have had a lot of problems making the
> compile work. For example, I have a subdirectory called include. Jsp
> files in the include directory are included from the directory above
> using '<%@ include file="include/filename.jsp" %>'. This works for one
> level of nesting, but there are problems when a file in the include
> subdirectory includes another file in the include subdirectory. Prior
> to installing service packs, specifying 'include/secondfile.jsp' for the
> file parameter worked. After service packs, this code had to be changed
> to just plain 'secondfile.jsp'. Imagine my surprise when I started
> compiling externally and only 'include/secondfile.jsp' would work. If I
> ever touch a jsp file after compiling them all, then the compile invoked
> by the JspServlet will NOT include secondfile unless I also modify the
> include line before the compile happens. This is a MAJOR PAIN, and I
> would like an explanation. How come invoking weblogic.jspc does
> something different than invoking JspServlet through file timestamp
> checking? Also, any ideas for a workaround?
>
> This leads to my second really annoying problem. After compiling all
> JSPs and restarting weblogic, I get a NullPointerException accessing a
> static method in a particular class. Many pages display correctly until
> this point in the processing, none of which access the problem class. A
> log message before the static method call is printed. A try/catch block
> surrounds the call. The first line in the static message prints another
> log message. This static method log message is not reached, and the
> try/catch block catches a NullPointerException. It seems the class
> reference is null, a situation I have not previously encountered in
> java. The generated java file looks fine, with no other code between
> the log message and the static call. Now here is the rub - if I touch
> the jsp file containing the class reference, with no code change,
> weblogic recompiles it using JspServlet, and then everything works as
> expected. It seems the external compilation is the only factor that
> varies in the failure. I am quite frustrated trying to track this
> 'impossible to occur' exception. Any suggestions, advice, or
> workarounds?
>
> I have searched newsgroups and seen some similar behaviors reported, but
> with no solutions. One person mentioned that the external compile
> should take place with the current directory set to the root. This
> fails completely to find the relative include files.
>
> Bryan Helm
>
-
Bursting Problem - A file or directory in the path name does not exist
I'm trying to burst some data via email using the standard DocumentProcessor java code but receiving an error relating, I assume, to an invalid temporary directory. I've checked that the directory exists, as do the data file and control file. By the way I am not running in Apps, just stand alone mode. Any ideas would be much appreciated.
[042308_104249440][oracle.apps.xdo.batch.bursting.FileHandler][EXCEPTION] java.io.FileNotFoundException: /u02/DIAS/bursting/BIPublisher/tmp/042308_104249338/xdo2.tmp (A file or directory in the path name does not exist.)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:205)
at java.io.FileOutputStream.<init>(FileOutputStream.java:96)
at oracle.apps.xdo.template.RTFProcessor.setOutput(Unknown Source)
at oracle.apps.xdo.batch.bursting.FileHandler.rtf2xsl(Unknown Source)
at oracle.apps.xdo.batch.bursting.ProcessDocument.getXSLFile(Unknown Source)
at oracle.apps.xdo.batch.bursting.ProcessDocument.processTemplate(Unknown Source)
at oracle.apps.xdo.batch.bursting.ProcessCoreDocument.processLayout(Unknown Source)
at oracle.apps.xdo.batch.BurstingProcessorEngine.addDocument2Queue(Unknown Source)
at oracle.apps.xdo.batch.BurstingProcessorEngine.createBurstingDocument(Unknown Source)
at oracle.apps.xdo.batch.BurstingProcessorEngine.burstDocument(Unknown Source)
at oracle.apps.xdo.batch.BurstingProcessorEngine.globalDataEndElement(Unknown Source)
at oracle.apps.xdo.batch.BurstingProcessorEngine.endElement(Unknown Source)
at oracle.xml.parser.v2.XMLContentHandler.endElement(XMLContentHandler.java:196)
at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1212)
at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:301)
at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:268)
at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:201)
at oracle.apps.xdo.batch.BurstingProcessorEngine.burstingRequest(Unknown Source)
at oracle.apps.xdo.batch.BurstingProcessorEngine.burstingEndElement(Unknown Source)
at oracle.apps.xdo.batch.BurstingProcessorEngine.endElement(Unknown Source)
at oracle.xml.parser.v2.XMLContentHandler.endElement(XMLContentHandler.java:196)
at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1212)
at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:301)
at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:268)
at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:201)
at oracle.apps.xdo.batch.BurstingProcessorEngine.burstingConfigParser(Unknown Source)
at oracle.apps.xdo.batch.BurstingProcessorEngine.process(Unknown Source)
at oracle.apps.xdo.batch.DocumentProcessor.process(Unknown Source)
at PIreportburst.bEngine(PIreportburst.java:24)
at PIreportburst.main(PIreportburst.java:51)
-Below is the java code I'm using
public void bEngine(String ctrlFile, String dataFile, String tmpDir) {
try {
DocumentProcessor dp = new DocumentProcessor(ctrlFile,dataFile,tmpDir);
dp.process();
catch (Exception e) {
System.out.println(e);
}Thanks Ike
Where do you suggest setting the temp directory:
DocumentProcessor("control.xml","data.xml","/u02/DIAS/bursting/BIPublisher/tmp/042308_104249338/xdo2.tmp")
or in the xdo.cfg:
<property name="system-temp-dir">/u02/DIAS/bursting/BIPublisher/tmp/042308_104249338/xdo2.tmp</property>
..and thanks for the link to the BIPublisherIDE
Cheers, Mike -
Hi,
I am using the java program to send the invoices to the different customers. I am able to send the email properly.
There are some issues which I need to resolve.
1. Password protection with all the attachments with customer number.
2. Special Char handling. For example if name is - test's goes as test's in the email subject.
3. Changes the attachment name as "customer_number.pdf" currently the busting program send the attachments as "1.pdf" "2.pdf"....
Thanks,
Rakesh PatelHi Rakesh, you haven't specified the version of XMLP you are using. If its 5.6.2 I'm afraid you will be out of luck. The bursting listener only holds a Vector containing the internal document sequence number (this is used in a temporary directory XMLP uses as a scratch area whilst building the document). As far as I can tell after manually going through the classes there was no way of tying in an xml tag to the listener. The attachment was always named after this number ie. 2.pdf and so on.
5.6.3 changed this, and you could rename an attachment provided that the tag was available in your select statement bursting control file. This also means you do not need the bursting listener in 5.6.3 if thats all you are using the listener for.
Under EBS my advice is to upgrade to 5.6.3 as many nice features were added to the API which allows for more flexibility.
Rob
http://www.scnet.com.au -
Email Bursting problem when there is not email - Urgent solution requried
Hi,
I am using the bursting API to send the invoices to multiple mail a/c for each invoice.
If the email id not exist on the .out file(It has different invoices with different customers), If takes the previous email id from the different invoice, Which is not correct.
If it is the case then the program will send the invoice to the customer which even not belog to the customer.
Thanks & Regards,
Rakesh PatelRakesh
I also faced this issue. I think it's a bug and Oracle Development will fix this.
I think its the issue with Bursting API is not able to clear Buffer/variable holding this values.
I have used another approach to fix this ,did not get time to raise TAR.
There are various workarounds to fix it based on the requirement of client
If Customer's email address is stored as blank in Customer Master then there is no point in sending them automatic mail ,in this case this has to be sent to Manually by client ( i mean this invoice mail should go to Admin person who has generated Invoice and that person in turn will take care to sent it to actual customer either by email or fax or manually by post)
-- So in summary solution here is ,if Customer's email address is null then send it to person who has generated the invoice ( use his email ID).
Functional folks have to play role here to convience client rgarding this
In my case client agreed on it and subsequently I followed below approach.
I was generating/extracting Data by XML publisher's Data Template [i was not using Oracle Report(RDF)],so in Data Template itself i handled it in SQL by NVL function in a such way that whenever email_address is blank then use originator email Address.
If you are using Oracle reports then you can use same approach or handle it through formula column.
Hope it will be useful to you at the certain extent.You can use this untill Oracle released the patch to fix this.
With Best Regards
Darshan Bhavsar -
Hi,
I am trying to burst my report from BI Publisher.
When I mention a FORMAT of PDF the bursting happens perfectly.
But when I mention a FORMAT of EXCEL and file name as SAMPLE2401201412.xls, system goes nuts and give the below error.
Output failed.
[INSTANCE_ID=xxxxxxxxxxx.1383223600258] [SUBJOB_ID=2173015]
Document generation failed
[INSTANCE_ID=xxxxxxxxxxx.1383223600258] [OUTPUT_ID=2158251][ReportProcessor]Error rendering documentoracle.xdo.servlet.scheduler.ProcessingException: [ReportProcessor]Error rendering document
at oracle.xdo.enterpriseScheduler.bursting.BurstingReportProcessor.renderReport(BurstingReportProcessor.java:447)
at oracle.xdo.enterpriseScheduler.bursting.BurstingReportProcessor.onMessage(BurstingReportProcessor.java:127)
at oracle.xdo.enterpriseScheduler.uti
My Bursting parameters are coming from table
KEY = 'ABC'
TEMPLATE = 'DWPIA'
TEMPLATE_FORMAT = 'RTF'
LOCALE = en-US
OUTPUT_FORMAT = EXCEL
DEL_CHANNEL = FILE
PARAMETER1 = /mnt/Business_Intelligence/Interim/2014/2014-P04/2014-P04-W2/Business Week SUMMARY/
PARAMETER2 = SAMPLE2401201412.xls
I have no clue why it runs OK for PDF and not for EXCEL...... any suggestion will be helpful.
CheersExactly Same thing for me : (Here bipublisher log file (TRACE 32)) :
[2014-03-25T12:36:34.207+01:00] [bi_server1] [WARNING] [] [oracle.xdo] [tid: 42] [userId: *****] [ecid: 0000KJsywYNAlJh5TB^Ayc1JCMTS000005,0] [APP: bipublisher#11.1.1] !!!!!!! BurstingReportProcessor.renderReport :: [ReportProcessor]Error rendering document for [INSTANCE_JOB_ID=8552][[
[JOB_ID=8568]
[OUTPUT_ID=7851]
[REPORT_URL=/~weblogic/TEST/report.xdo]
[TEMPLATE=report]
[OUTPUT_FORMAT=excel]
::oracle.xdo.servlet.data.DataException: Invalid format requested: excel
at oracle.xdo.servlet.ReportException.fillInStackTrace(ReportException.java:124)
at oracle.xdo.servlet.data.DataException.fillInStackTrace(DataException.java:127)
at java.lang.Throwable.<init>(Throwable.java:196)
at java.lang.Exception.<init>(Exception.java:41)
at oracle.xdo.servlet.ReportException.<init>(ReportException.java:36)
at oracle.xdo.servlet.data.DataException.<init>(DataException.java:39)
at oracle.xdo.servlet.ReportImpl.renderScheduledJob(ReportImpl.java:882)
at oracle.xdo.enterpriseScheduler.bursting.BurstingReportProcessor.renderReport(BurstingReportProcessor.java:386)
at oracle.xdo.enterpriseScheduler.bursting.BurstingReportProcessor.onMessage(BurstingReportProcessor.java:127)
at oracle.xdo.enterpriseScheduler.util.CheckpointEnabledListener.onMessage(CheckpointEnabledListener.java:25)
at oracle.xdo.enterpriseScheduler.jmswrapper.client.JMSMessageConsumer.processMessage(JMSMessageConsumer.java:231)
at oracle.xdo.enterpriseScheduler.jmswrapper.client.ThreadedMessageDispatcher$DispatchWorker.run(ThreadedMessageDispatcher.java:157)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
[2014-03-25T12:36:34.209+01:00] [bi_server1] [WARNING] [] [oracle.xdo] [tid: 42] [userId: *****] [ecid: 0000KJsywYNAlJh5TB^Ayc1JCMTS000005,0] [APP: bipublisher#11.1.1] !!!!!!! BurstingReportProcessor.renderReport :: [ReportProcessor]Error rendering document::oracle.xdo.servlet.scheduler.ProcessingException: [ReportProcessor]Error rendering document[[
at oracle.xdo.enterpriseScheduler.bursting.BurstingReportProcessor.renderReport(BurstingReportProcessor.java:447)
at oracle.xdo.enterpriseScheduler.bursting.BurstingReportProcessor.onMessage(BurstingReportProcessor.java:127)
at oracle.xdo.enterpriseScheduler.util.CheckpointEnabledListener.onMessage(CheckpointEnabledListener.java:25)
at oracle.xdo.enterpriseScheduler.jmswrapper.client.JMSMessageConsumer.processMessage(JMSMessageConsumer.java:231)
at oracle.xdo.enterpriseScheduler.jmswrapper.client.ThreadedMessageDispatcher$DispatchWorker.run(ThreadedMessageDispatcher.java:157)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662) -
Problems with NullPointerException
Hi there.
I'm currently working on a school project on MIDP. My porject requires me to retrieve data which is an xml file through a socket connection via the DataInputStream and DataOutputStream.
When i run the application using the ktoolbar, I encounter an "Uncaught exception java/lang/NullPointerException." error.
How am i goin to solve this issue? Can anyone help? Thank you so much! :)By debugging...
Maybe you could give us some more info? NullPointerException are fairly common, and are mostly stupid bugs easily fixed -
Has anyone implemented the Bursting Solution, because I am still getting this error when I run my bursting class
Current system time is 07-MAY-2007 17:42:14
Exception in thread "main" java.lang.ClassCastException
at oracle.apps.fnd.cp.request.Run.main(Run.java:157)
oracle.apps.fnd.cp.sample.EbsEmail
Program exited with status 1
and this:
APP-FND-01388: Cannot read value for profile option CONC_OUTFILE in routine &ROUTINE.
Concurrent request completed
Current system time is 07-MAY-2007 17:42:30Actually, I have been using the Delivery Manager ( instead of the Document Processor ) to send the emails, and hence there is no control file.
Sent a copy of the java class. -
Thread problems - shutting down.
Okay, I've got my multi-threaded server program working just fine and all is well...until I shut down the server.
By some quirky twist of fate, java chat servers seem to be a popular education assignment in the last two weeks, which will probably put some people off answering this simply because of all the clueless posts on the subject recently. :)
Anyway, a little background on how I'm doing things first.
At the top there is the Server object, which is implementing Runnable. This instances the ClientManager, creates the ServerSocket and then kicks off its own thread and loops in the run() method waiting for connections while a boolean is true. If it gets a connection it calls the ClientManager addConnection() method and passes it the received client socket.
The ClientManager holds a List of ClientConnections and provides methods to add and remove ClientConnections. The ClientManager also runs in its own thread by implementing the Runnable interface and uses its run() method to loop through checking for incoming messages from each client.
A ClientConnection object also runs in its own thread via the Runnable interface. This checks for incoming messages from the client and stores the String ready to be received by the ClientManager and broadcast to all ClientConnections.
So, you've got the Server running in its own thread, the ClientManager running in its own thread and the ClientManager maintaining a List of ClientConnections, each running in its own thread.
I'm starting my threads like this:-
// Constructor.
Public SomeObject() {
start();
// Runnable method.
Public void start() {
// threadObject is private class variable.
bThreadActive = true;
this.threadObject = new Thread(this);
threadObject.setDaemon(true);
threadObject.start();
}I'm running my threadded object like this: -
Public void run() {
do {
// Do work here.
} while(bThreadActive);
// Activates the shutdown method for this object.
shutdownObject();
}I'm shutting down my threads like this: -
Public void shutdown() {
this.bThreadActive = false;
// The main shutdown code.
Public void shutdownObject() {
// Kill thread object.
this.threadObject = null;
// Do other stuff.
}Which I think should work fine. Anything wrong with the above?
I'm getting problems with NullPointerExceptions with the Server object at the point where it tries to shutdown the ClientManager. This works by shutting down all ClientConnections in the List first and then emptying the List before killing its own thread. Also, the Server object seems to shutdown before the ClientManager. And other such weirdness.
I know you're all going to ask for specific code and a stacktrace, which I'll provide....I just want to check that my method for using threads as above is correct first, so I can rule that out - mostly because I suspect I'm missing some vital piece of knowledge on using threads....things are not working as I expect.
Anyway, a quick answer on the above and then I'll start posting more specific info.
Thanks all :)Ooops....my mistake. I was calling shutdown() twice. Once from the GUI code and automatically from after the loop in the run() method. Funny how the stacktrace doesn't drill down any further than the method that makes this call.
Okay, its almost all working perfectly, except for this part....
// Start accepting client connections from the server service.
public void run() {
while(bThreadActive) {
if (sockServer != null) {
if (!sockServer.isClosed()) {
try {
sockClient = sockServer.accept();
if (sockClient != null) {
this.clientManager.addClientConnection(sockClient);
this.pOutput.printOutput("Connection accepted from: " + sockClient.getInetAddress().getHostAddress());
} catch (IOException ioe) {
if (bThreadActive) {
this.pOutput.printOutput("ERROR: Could not accept incoming client connection");
} catch (NullPointerException npe) {
// Leave this for now.
shutdown();
// Shutdown the server service and disconnect all client connections.
public void shutdown() {
try {
clientManager.stopThread();
sockServer.close();
threadServer = null;
} catch (NullPointerException npe) {
npe.printStackTrace();
} catch (IOException ioe) {
pOutput.printOutput("ERROR: Could not cleanly shutdown the server socket");
pOutput.printOutput("Server service shut down successfully");
// Stop the server thread (automatically shuts down).
public synchronized void stopThread() {
bThreadActive = false;
}When I call the above like this from the GUI object...
// Stop the server.
private void stopServer() {
try {
server.stopThread();
setGUIMode(MODE_DISCONNECTED);
} catch (NullPointerException npe) {
npe.printStackTrace();
}...the string "Server service shut down successfully" from the completion of the shutdown() method never appears, so it looks as though its not executing.
But if I do this instead in the stopServer() method and remove the shutdown() call in the run() method, it works......but I get two (sometimes three) outputs of "Server service shut down successfully" which makes me think its being run twice somehow.....once before the ClientManager has been shutdown and once after or twice after.
Server service shut down successfully
Shutting down Client Manager...
All client connections disconnected
Client Manager successfully shutdown
Server service shut down successfully
Server service shut down successfully
Any ideas? -
Found NullPointerException when submitting requests in consecutive sequence
i found i met problem of 'NullPointerException' and inconsistence resultset when i fast submitting requests. For a example, i have a 'Go' button on my jsp page which will quote a search value to look for search result. I tried double-clicking the 'Go' image button to submit the search request in faster manner (e.g. double-clicking the icon rather than single-clicking), my mentioned error usually occurs. However, when i submit my request by slower manner, those mentioned error rarely occurs. I am using BC4J component with stateless connection and run on local mode. Any hints for my mentioned problem?
Thanks for your replies!Please let me provide the tracing message for the NullPointerException:
java.lang.NullPointerException
java.lang.Object oracle.jbo.server.ViewObjectImpl.getSyncLock()
oracle.jbo.server.ViewRowSetImpl oracle.jbo.server.ViewObjectImpl.getDefaultRowSet()
boolean oracle.jbo.server.ViewObjectImpl.hasNext()
int MyApp.tags.MyTag.doStartTag()
void MyJsp.jspService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void oracle.jsp.runtime.HttpJsp.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void oracle.jsp.runtimev2.JspPageTable.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String)
void oracle.jsp.runtimev2.JspServlet.internalService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void oracle.jsp.runtimev2.JspServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void com.evermind.server.http.ServletRequestDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void com.evermind.server.http.ServletRequestDispatcher.forwardInternal(javax.servlet.ServletRequest, javax.servlet.http.HttpServletResponse)
boolean com.evermind.server.http.HttpRequestHandler.processRequest(com.evermind.server.ApplicationServerThread, com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse, java.io.InputStream, java.io.OutputStream, boolean)
void com.evermind.server.http.HttpRequestHandler.run(java.lang.Thread)
void com.evermind.util.ThreadPoolThread.run()
javax.servlet.jsp.JspException: [MyTag..doStartTag]: Exception - null
int MyApp.tags.MyTag.doStartTag()
void MyJsp.jspService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void oracle.jsp.runtime.HttpJsp.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void oracle.jsp.runtimev2.JspPageTable.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String)
void oracle.jsp.runtimev2.JspServlet.internalService(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void oracle.jsp.runtimev2.JspServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void com.evermind.server.http.ServletRequestDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void com.evermind.server.http.ServletRequestDispatcher.forwardInternal(javax.servlet.ServletRequest, javax.servlet.http.HttpServletResponse)
boolean com.evermind.server.http.HttpRequestHandler.processRequest(com.evermind.server.ApplicationServerThread, com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse, java.io.InputStream, java.io.OutputStream, boolean)
void com.evermind.server.http.HttpRequestHandler.run(java.lang.Thread)
void com.evermind.util.ThreadPoolThread.run()
I HOPE SOMEONE WOULD NOTICE MY MENTIONED PROBLEM, RATHER THAN IGNORE IT AGAIN!!In fact, I think the 'Stateless' connection and multi-thread from Java nature causes such problem. However, because my users would just submit searching requests, I don't want to use those connection method in which visitors' state is stored. Please advice.
Thanks for your replying.
Maybe you are looking for
-
Problem with installation - Augigy
I have a problem with installation on 32bit Vista. Im downloaded newest drivers (SB24_VTDRV_LB__04_0077) and when the installation start, i receive message "A higher version of driver is found in your system, installation will abort.". Help?
-
Errors in java SP19 deployment with SDM
hi all when i deploy the java SP19 with the SDM i get this 2 errors with SAP_jTECHS (xml_das_connector_init) and SAP_JTECHF (XML_DAS_Init): May 17, 2007 10:15:46... Info: Starting: Update: Selected development component 'tc/TechSrv/xml_das_connector_
-
New sync error message (phone locked?)
Yesterday I started to get the following error when plugging my phone into USB to sync and charge: "iTunes could not connect to the iPhone "(name)" because it is locked with a passcode. You must enter your passcode on the iPhone before it can be used
-
FROM Adobe Premiere Pro CC 2014.2 support TO Adobe Premiere Pro CC ver. 7?
My friend just sent me a PROJECT FILE from the latest ver of Adobe Premiere Pro CC, which is 2014.2, and I opened it to the old version of Adobe Premiere Pro CC, which is ver. 7. An error message pop up and it said that it cant be open cuz its a newe
-
How to replace hard drive in mini 110-3131dx
Trying to replace hard drive in the mini 110-3131DX..... I have a replacement ... How do I open the case. I see a orange slider bar in battery compartment, but no screws to take out or covers to remove. It has a solid no opening base except wh