Configuring Kodo logging ...
Hi Guys,
Can somebody help me on this one? I have been banging my head against wall
for quite a while.
I am basically trying to limit the amount of logging Kodo produces by
providing log4j.properties (attached bellow).
We have Kodo (2.4.2) deployed on Websphere (WAS 5.0) server. For some
reason, Kodo libraries need to be deployed via Websphere extension
classloader (../websphere/AppServer/lib/ext).
To eliminate the classloader issues, I have tried heaps of locations for
the log4j.properties and to my surprise, none of it worked. Tested
locations included:
log4j.properties in (../websphere/AppServer/lib/ext
log4j.properties inside of jar file in (../websphere/AppServer/lib/ext
log4j.properties in kodo.jar (desperate)
log4j.properties in ../Websphere/AppServer/properties
log4j.properties on classpath when starting the server (java -cp
xxx;log4j.properties ... )
and a few others.
As you may guess, no luck. I can get the properties file myself as shown
bellow(that is, 'log4j.properties' loads fine, '/log4j.properties' returns
null). Does Kodo look for log4j.properties or '/log4j.properties'?
The test code was classloaded from the same location as Kodo.jar etc
(../websphere/AppServer/lib/ext)
Anyway, it may be just that I am a bit fuzzy on what is exactly happening
when common-loggings/log4j initialize andI would definitelly appretiate a
pointer in the right direction if that is the case.
Kodo should use log4j as long as the log4j.1.2.7.jar file is present on
the classpath, right?
Thank you for your help!
Petr
Testing code loading the properties:
URL ps = getClass().getClassLoader().getResource("log4j.properties");
URL ps2 = getClass().getClassLoader().getResource("/log4j.properties");
URL sps =
getClass().getClassLoader().getSystemClassLoader().getResource("log4j.properties");
URL sps2 =
getClass().getClassLoader().getSystemClassLoader().getResource("/log4j.properties");
System.out.println("CheckClassPath - log4j.properties: " + ps);
System.out.println("CheckClassPath - /log4j.properties: " + ps2);
System.out.println("CheckClassPath system - log4j.properties: " + sps);
System.out.println("CheckClassPath system - /log4j.properties: " + sps2);
Output snippet:
[1/04/03 17:28:20:285 EST] 1a9ec7b6 SystemOut O CheckClassPath -
log4j.properties:
file:/C:/Program%20Files/WebSphere/AppServer/properties/log4j.properties
[1/04/03 17:28:20:285 EST] 1a9ec7b6 SystemOut O CheckClassPath -
/log4j.properties: null
[1/04/03 17:28:20:285 EST] 1a9ec7b6 SystemOut O CheckClassPath system
- log4j.properties:
file:/C:/Program%20Files/WebSphere/AppServer/properties/log4j.properties
[1/04/03 17:28:20:285 EST] 1a9ec7b6 SystemOut O CheckClassPath system
- /log4j.properties: null
log4j.properties:
# Set root logger level to DEBUG and its only appender to A1.
log4j.rootCategory=ERROR, console
#Subsystem level settings
log4j.logger.servicenet.core =DEBUG
log4j.logger.servicenet.core.test =FATAL
#KODO - disabled
log4j.rootCategory=ERROR, console
log4j.category.com.solarmetric.kodo = ERROR, console
log4j.category.com.solarmetric.kodo.impl.jdbc.SQL=FATAL, console
log4j.category.com.solarmetric.kodo.impl.jdbc.JDBC=FATAL, console
log4j.category.com.solarmetric.kodo.impl.jdbc.Schema=ERROR, console
log4j.category.com.solarmetric.kodo.Performance=ERROR, console
log4j.category.com.solarmetric.kodo.MetaData=ERROR, console
log4j.category.com.solarmetric.kodo.Enhance=ERROR, console
log4j.category.com.solarmetric.kodo.Query=ERROR, console
log4j.category.com.solarmetric.kodo.Runtime=ERROR, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
I'm afraid I don't get it. Can someone tell me specifically, what to
do, to prevent kodo from logging anything to stdout (or anywhere else,
really)
I do not want to adjust my log4j root logging verbosity, as I use that
for my application too.
Preferably I should be able to do this from the kodo.properties file
itself, rather than play
guess-where-in-the-classpath-is-the-proper-log4j.properties file.
Petr Bulanek wrote:
Hi Stephen,
That was it. Man, I would like to buy you a drink!!! :-))))
I should not forget Marc, you guys are all great!
Thank you!!!
Petr
Stephen Kim wrote:
I think the property you are looking for is:
org.apache.commons.logging.LogFactory
See further documentation on Jakarta's logging page at:
http://jakarta.apache.org/commons/logging/api/org/apache/commons/logging/package-frame.html
Petr Bulanek wrote:
Hi Stephen,
Thank you for your reply.
I have tried the following combinations in my startServer.bat script:
SET LOG4J=-Dlog4j.configuration=file:/c:/log4j.properties
and
SET LOG4J=-Dlog4j.configuration=/log4j.properties
"%JAVA_HOME%binjava" %LOG4J% %WAS_TRACE% %DEBUG% %CONSOLE_ENCODING%
"%CLIENTSAS%" "-classpath" "%WAS_CLASSPATH%;/log4j.properties;"
"-Dws.ext.dirs=%WAS_EXT_DIRS%;c:/log4j.properties;" %USER_INSTALL_PROP%
"-Dwas.install.root=%WAS_HOME%" "com.ibm.ws.bootstrap.WSLauncher"
"com.ibm.ws.management.tools.WsServerLauncher" "%CONFIG_ROOT%"
"%WAS_CELL%" "%WAS_NODE%" %*
and none of them made any difference. I wonder if it could be the case
that Kodo is not using log4j, but some other logging method instead.
Could just having jdk 1.4 installed make any difference? Is there anything
I can do to force Kodo to use log4j instead of relying on default
initialization of common-loggings?
Thank you,
Petr
You might want to set the system property explicity:
from log4j's docs:
Set the resource string variable to the value of the log4j.configuration
system property. The preferred way to specify the default initialization
file is through the log4j.configuration system property. In case the
system property log4j.configuration is not defined, then set the string
variable resource to its default value "log4j.properties".
Petr Bulanek wrote:
Hi Guys,
Can somebody help me on this one? I have been banging my head against wall
for quite a while.
I am basically trying to limit the amount of logging Kodo produces by
providing log4j.properties (attached bellow).
We have Kodo (2.4.2) deployed on Websphere (WAS 5.0) server. For some
reason, Kodo libraries need to be deployed via Websphere extension
classloader (../websphere/AppServer/lib/ext).
To eliminate the classloader issues, I have tried heaps of locations for
the log4j.properties and to my surprise, none of it worked. Tested
locations included:
log4j.properties in (../websphere/AppServer/lib/ext
log4j.properties inside of jar file in (../websphere/AppServer/lib/ext
log4j.properties in kodo.jar (desperate)
log4j.properties in ../Websphere/AppServer/properties
log4j.properties on classpath when starting the server (java -cp
xxx;log4j.properties ... )
and a few others.
As you may guess, no luck. I can get the properties file myself as shown
bellow(that is, 'log4j.properties' loads fine, '/log4j.properties' returns
null). Does Kodo look for log4j.properties or '/log4j.properties'?
The test code was classloaded from the same location as Kodo.jar etc
(../websphere/AppServer/lib/ext)
Anyway, it may be just that I am a bit fuzzy on what is exactly happening
when common-loggings/log4j initialize andI would definitelly appretiate a
pointer in the right direction if that is the case.
Kodo should use log4j as long as the log4j.1.2.7.jar file is present on
the classpath, right?
Thank you for your help!
Petr
Testing code loading the properties:
URL ps = getClass().getClassLoader().getResource("log4j.properties");
URL ps2 = getClass().getClassLoader().getResource("/log4j.properties");
URL sps =
getClass().getClassLoader().getSystemClassLoader().getResource("log4j.properties");
URL sps2 =
getClass().getClassLoader().getSystemClassLoader().getResource("/log4j.properties");
System.out.println("CheckClassPath - log4j.properties: " + ps);
System.out.println("CheckClassPath - /log4j.properties: " + ps2);
System.out.println("CheckClassPath system - log4j.properties: " + sps);
System.out.println("CheckClassPath system - /log4j.properties: " +sps2);
Output snippet:
[1/04/03 17:28:20:285 EST] 1a9ec7b6 SystemOut O CheckClassPath -
log4j.properties:
file:/C:/Program%20Files/WebSphere/AppServer/properties/log4j.properties
[1/04/03 17:28:20:285 EST] 1a9ec7b6 SystemOut O CheckClassPath -
/log4j.properties: null
[1/04/03 17:28:20:285 EST] 1a9ec7b6 SystemOut O CheckClassPath system
- log4j.properties:
file:/C:/Program%20Files/WebSphere/AppServer/properties/log4j.properties
[1/04/03 17:28:20:285 EST] 1a9ec7b6 SystemOut O CheckClassPath system
- /log4j.properties: null
log4j.properties:
# Set root logger level to DEBUG and its only appender to A1.
log4j.rootCategory=ERROR, console
#Subsystem level settings
log4j.logger.servicenet.core =DEBUG
log4j.logger.servicenet.core.test =FATAL
#KODO - disabled
log4j.rootCategory=ERROR, console
log4j.category.com.solarmetric.kodo = ERROR, console
log4j.category.com.solarmetric.kodo.impl.jdbc.SQL=FATAL, console
log4j.category.com.solarmetric.kodo.impl.jdbc.JDBC=FATAL, console
log4j.category.com.solarmetric.kodo.impl.jdbc.Schema=ERROR, console
log4j.category.com.solarmetric.kodo.Performance=ERROR, console
log4j.category.com.solarmetric.kodo.MetaData=ERROR, console
log4j.category.com.solarmetric.kodo.Enhance=ERROR, console
log4j.category.com.solarmetric.kodo.Query=ERROR, console
log4j.category.com.solarmetric.kodo.Runtime=ERROR, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-4r [%t] %-5p %c %x -%m%n
Stephen Kim
[email protected]
SolarMetric, Inc.
http://www.solarmetric.com
Stephen Kim
[email protected]
SolarMetric, Inc.
http://www.solarmetric.com
Similar Messages
-
Configuring kodo-jdo-2.5.3 with weblogic 8.1 using JCA
Hi there.
I am trying to configure kodo-jdo-2.5.3 in WebLogic 8.1 using JCA method.
The issue I got was that I got DB authentication failed. I have tested my
JDBC connect -- working fine, I have turned on JDBC log in WL, it looks
fine.
It looks like that KODO was still trying to create its own JDBC connection
even I have specified
<config-property>
<description>The JNDI name of the connection factory to use for
obtaining connections.</description>
<config-property-name>ConnectionFactoryName</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>datasource.oracle9</config-property-value>
</config-property>
"datasource.oracle9" is the JNDI name of my data source.
The error message is the following. I will really appreciate your help.
Melvin
Oct 19, 2003 4:20:53 AM com.solarmetric.kodo.impl.jdbc.RegisterListener
registerClass
SEVERE: com.solarmetric.kodo.runtime.FatalDataStoreException:
java.sql.SQLException: User: melvin, f
ailed to be authenticated. [code=0;state=null]
NestedThrowables:
java.sql.SQLException: User: melvin, failed to be authenticated.
com.solarmetric.kodo.runtime.FatalDataStoreException:
java.sql.SQLException: User: melvin, failed to
be authenticated. [code=0;state=null]
NestedThrowables:
java.sql.SQLException: User: melvin, failed to be authenticated.
at
com.solarmetric.kodo.impl.jdbc.runtime.SQLExceptions.throwFatal(SQLExceptions.java:58)
at
com.solarmetric.kodo.impl.jdbc.schema.DBDictionaryFactory.getDictionary(DBDictionaryFacto
ry.java:212)
at
com.solarmetric.kodo.impl.jdbc.JDBCSimpleConfiguration.getDictionary(JDBCSimpleConfigurat
ion.java:370)
at
com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory.registerClassInternal(JDBCPe
rsistenceManagerFactory.java:455)
at
com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory.registerClass(JDBCPersistenc
eManagerFactory.java:338)
at
com.solarmetric.kodo.impl.jdbc.RegisterListener.registerClass(RegisterListener.java:53)
at
javax.jdo.spi.JDOImplHelper.registerClass(JDOImplHelper.java:269)
at samples.j2ee.Car.<clinit>(Car.java)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:140)
at samples.j2ee.ejb.CarBean.class$(CarBean.java:11)
at samples.j2ee.ejb.CarBean.list(CarBean.java:136)
at
samples.j2ee.ejb.CarEJB_pgfrtx_EOImpl.list(CarEJB_pgfrtx_EOImpl.java:201)
at jsp_servlet.__index._jspService(__index.java:170)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.jav
a:1053)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:431)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletC
ontext.java:6310)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:36
22)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
NestedThrowablesStackTrace:
java.sql.SQLException: User: melvin, failed to be authenticated.
at
weblogic.jdbc.common.internal.RmiDataSource.getSubject(RmiDataSource.java:257)
at
weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:188)
at
com.solarmetric.kodo.impl.jdbc.runtime.DataSourceConnector.getConnection(DataSourceConnec
tor.java:63)
at
com.solarmetric.kodo.impl.jdbc.schema.DBDictionaryFactory.getDictionary(DBDictionaryFacto
ry.java:179)
at
com.solarmetric.kodo.impl.jdbc.JDBCSimpleConfiguration.getDictionary(JDBCSimpleConfigurat
ion.java:370)
at
com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory.registerClassInternal(JDBCPe
rsistenceManagerFactory.java:455)
at
com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory.registerClass(JDBCPersistenc
eManagerFactory.java:338)
at
com.solarmetric.kodo.impl.jdbc.RegisterListener.registerClass(RegisterListener.java:53)
at
javax.jdo.spi.JDOImplHelper.registerClass(JDOImplHelper.java:269)
at samples.j2ee.Car.<clinit>(Car.java)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:140)
at samples.j2ee.ejb.CarBean.class$(CarBean.java:11)
at samples.j2ee.ejb.CarBean.list(CarBean.java:136)
at
samples.j2ee.ejb.CarEJB_pgfrtx_EOImpl.list(CarEJB_pgfrtx_EOImpl.java:201)
at jsp_servlet.__index._jspService(__index.java:170)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.jav
a:1053)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:431)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletC
ontext.java:6310)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:36
22)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
<Oct 19, 2003 4:20:53 AM CDT> <Info> <EJB> <BEA-010051> <EJB Exception
occurred during invocation fr
om home: samples.j2ee.ejb.CarEJB_pgfrtx_HomeImpl@1c059f6 threw exception:
com.solarmetric.kodo.runti
me.FatalDataStoreException: java.sql.SQLException: User: melvin, failed to
be authenticated. [code=0
;state=null]
NestedThrowables:
java.sql.SQLException: User: melvin, failed to be authenticated.
com.solarmetric.kodo.runtime.FatalDataStoreException:
java.sql.SQLException: User: melvin, failed to
be authenticated. [code=0;state=null]
NestedThrowables:
java.sql.SQLException: User: melvin, failed to be authenticated.
at
com.solarmetric.kodo.impl.jdbc.runtime.SQLExceptions.throwFatal(SQLExceptions.java:58)
at
com.solarmetric.kodo.impl.jdbc.schema.DBDictionaryFactory.getDictionary(DBDictionaryFacto
ry.java:212)
at
com.solarmetric.kodo.impl.jdbc.JDBCSimpleConfiguration.getDictionary(JDBCSimpleConfigurat
ion.java:370)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getDictionary(JDBCStoreManager.ja
va:753)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getClassMapping(JDBCStoreManager.
java:1023)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getClassMapping(JDBCStoreManager.
java:1037)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCExtent.getResultList(JDBCExtent.java:71)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCExtent.getIterator(JDBCExtent.java:47)
at
com.solarmetric.kodo.runtime.ExtentImpl$MultipleSubclassIterator.newIterator(ExtentImpl.j
ava:344)
at serp.util.MultiIterator.setIterator(MultiIterator.java:74)
at serp.util.MultiIterator.hasNext(MultiIterator.java:29)
at serp.util.LookaheadIterator.setNext(LookaheadIterator.java:133)
at
serp.util.LookaheadIterator.initialize(LookaheadIterator.java:118)
at serp.util.LookaheadIterator.hasNext(LookaheadIterator.java:48)
at serp.util.MultiIterator.setIterator(MultiIterator.java:73)
at serp.util.MultiIterator.hasNext(MultiIterator.java:29)
at
com.solarmetric.kodo.runtime.ExtentImpl$TransactionAwareIterator.hasNext(ExtentImpl.java:
403)
at samples.j2ee.ejb.CarBean.list(CarBean.java:138)
at
samples.j2ee.ejb.CarEJB_pgfrtx_EOImpl.list(CarEJB_pgfrtx_EOImpl.java:201)
at jsp_servlet.__index._jspService(__index.java:170)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.jav
a:1053)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:431)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletC
ontext.java:6310)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:36
22)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
NestedThrowablesStackTrace:
java.sql.SQLException: User: melvin, failed to be authenticated.
at
weblogic.jdbc.common.internal.RmiDataSource.getSubject(RmiDataSource.java:257)
at
weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:188)
at
com.solarmetric.kodo.impl.jdbc.runtime.DataSourceConnector.getConnection(DataSourceConnec
tor.java:63)
at
com.solarmetric.kodo.impl.jdbc.schema.DBDictionaryFactory.getDictionary(DBDictionaryFacto
ry.java:179)
at
com.solarmetric.kodo.impl.jdbc.JDBCSimpleConfiguration.getDictionary(JDBCSimpleConfigurat
ion.java:370)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getDictionary(JDBCStoreManager.ja
va:753)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getClassMapping(JDBCStoreManager.
java:1023)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.getClassMapping(JDBCStoreManager.
java:1037)Alex Robbins wrote:
Try removing <authentication-mechanism> from the ra.xml file of the Kodo
JCA connector. Then it won't try to authenticate against the WL security
realm. (If you want connector-level authentication as well as DB-conn
authentication i think you'll have to configure WL security. I don't know
how). This worked for me.
Alex.Hi, The following is the ra.xml, please see any problem.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE connector PUBLIC '-//Sun Microsystems, Inc.//DTD Connector
1.0//EN' 'http://java.sun.com/dtd/connector_1_0.dtd'>
<connector>
<display-name>KodoJDO</display-name>
<description>Resource Adapter for integration of the Kodo Java Data
Objects (JDO) implementation with J2EE 1.3 compliant managed
environments</description>
<icon>
<small-icon>kodo16.gif</small-icon>
<large-icon>kodo32.gif</large-icon>
</icon>
<vendor-name>Solarmetric, Inc.</vendor-name>
<spec-version>1.0</spec-version>
<eis-type>jdo</eis-type>
<version>1.0</version>
<license>
<description>See http://www.solarmetric.com for terms and license
conditions.</description>
<license-required>true</license-required>
</license>
<resourceadapter>
<managedconnectionfactory-class>com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl</managedconnectionfactory-class>
<connectionfactory-interface>javax.resource.cci.ConnectionFactory</connectionfactory-interface>
<connectionfactory-impl-class>com.solarmetric.kodo.impl.jdbc.ee.JDOConnectionFactory</connectionfactory-impl-class>
<connection-interface>javax.resource.cci.Connection</connection-interface>
<connection-impl-class>com.solarmetric.kodo.ee.EEPersistenceManager</connection-impl-class>
<transaction-support>XATransaction</transaction-support>
<config-property>
<description>The number of hard references to cached objects that the
PersistenceManager's cache will retain (in addition to the soft reference
cache that it maintains). Setting this to a higher value will result in
more objects being retained in the cache, at the cost of utilizing more
memory resources. Setting it to -1 will cause the PersistenceManager to
maintain hard references only. This will result in better performance, but
can have adverse effects on memory usage.</description>
<config-property-name>CacheReferenceSize</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>1000</config-property-value>
</config-property>
<config-property>
<description>The class name of ether the JDBC java.sql.Driver, or an
instance of a javax.sql.DataSource to use to connect to the data
source.</description>
<config-property-name>ConnectionDriverName</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The JNDI name of the connection factory to use for
finding non-transactional connections. If specified, this is the
connection that will be used for access for obtaining sequence
numbers.</description>
<config-property-name>ConnectionFactory2Name</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>jdbc/petshop</config-property-value>
</config-property>
<config-property>
<description>A space-separated list of properties to be passed to
the JDBC Driver when obtaining a Connection for the ConnectionFactory2
(which will be used to obtain sequence numbers). Properties are of the
form "key=value". If a javax.sql.DataSource class is defined in the
javax.jdo.option.ConnectionDriverName property, then this property will be
used to set bean-like properties in the DataSource instance upon creation.
These properties vary depending on the DataSource in use: see the
documentation for your DataSource for details on the properties to
use.</description>
<config-property-name>ConnectionFactory2Properties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The JNDI name of the connection factory to use for
obtaining connections.</description>
<config-property-name>ConnectionFactoryName</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>PetShopXADataSource</config-property-value>
</config-property>
<config-property>
<description>The password for the user specified in
ConnectionUserName</description>
<config-property-name>ConnectionPassword</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>A space-separated list of properties to be passed to
the JDBC Driver when obtaining a Connection. Properties are of the form
"key=value". If a javax.sql.DataSource class is defined in the
javax.jdo.option.ConnectionDriverName property, then this property will be
used to set bean-like properties in the DataSource instance upon creation.
These properties vary depending on the DataSource in use: see the
documentation for your DataSource for details on the properties to
use.</description>
<config-property-name>ConnectionProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The connection retain mode. Possible options are
"persistence-manager", "transaction", and "on-demand". Default value is
"on-demand".</description>
<config-property-name>ConnectionRetainMode</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>on-demand</config-property-value>
</config-property>
<config-property>
<description>The number of seconds to wait between testing
connections retrieved from the connection pool. Only valid when using the
built-in Kodo connection pooling.</description>
<config-property-name>ConnectionTestTimeout</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>10</config-property-value>
</config-property>
<config-property>
<description>The URL for the data source.</description>
<config-property-name>ConnectionURL</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The username for the connection listed in
ConnectionURL.</description>
<config-property-name>ConnectionUserName</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The name of the class to use for caching of data loaded
from the data store. Must implement
com.solarmetric.kodo.runtime.datacache.DataCache.</description>
<config-property-name>DataCacheClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>A space-separated list of properties to pass to the
class defined in com.solarmetric.kodo.DataCacheClass upon
initialization.</description>
<config-property-name>DataCacheProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The name of the default class to use for mapping
persistent classes to the database. Must extend
com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.</description>
<config-property-name>DefaultClassMappingClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping</config-property-value>
</config-property>
<config-property>
<description>The number of seconds that data in the data cache is
valid for. A value of 0 or less means that by default, cached data does
not time out.</description>
<config-property-name>DefaultDataCacheTimeout</config-property-name>
<config-property-type>java.lang.Double</config-property-type>
<config-property-value>0.0</config-property-value>
</config-property>
<config-property>
<description>The number of rows that will be pre-fetched when an
element in a Query result is accessed.</description>
<config-property-name>DefaultFetchBatchSize</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>10</config-property-value>
</config-property>
<config-property>
<description>The threshold below which result lists will be
completely instantiated upon their creation. A value of -1 will always
force all results to be completely instantiated, thus disabling lazy
result loading.</description>
<config-property-name>DefaultFetchThreshold</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>30</config-property-value>
</config-property>
<config-property>
<description>The name of the default class to use for managing
subclass indicator columns. Must implement the
com.solarmetric.kodo.impl.jdbc.ormapping.SubclassProvider interface. See
custom class indicator documentation for more information about subclass
providers.</description>
<config-property-name>DefaultSubclassProviderClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>com.solarmetric.kodo.impl.jdbc.ormapping.SubclassProviderImpl</config-property-value>
</config-property>
<config-property>
<description>A space-separated list of properties to pass to the
class defined in
com.solarmetric.kodo.impl.jdbc.DefaultSubclassProviderClass upon
initialization.</description>
<config-property-name>DefaultSubclassProviderProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The DBDictionary to use for this configuration. This is
auto-detected based on the setting of javax.jdo.option.ConnectionURL, so
you need only set this to override the default with your own custom
DBDictionary or if you are using an unrecognized driver.</description>
<config-property-name>DictionaryClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>A space-separated list of name-value properties
settings to pass to the dictionary defined by
com.solarmetric.kodo.impl.jdbc.DictionaryClass. Many of the DBDictionary
options are automatically configured by concrete subclasses of
GenericDictionary. The defaults can, however, be overridden by using this
property.</description>
<config-property-name>DictionaryProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>If true, then Kodo JDO will allow the use of query
filter extensions. See the query extensions documentation for more
information.</description>
<config-property-name>EnableQueryExtensions</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>false</config-property-value>
</config-property>
<config-property>
<description>A comma-separated list of fetch group names that
PersistenceManagers will load by default when loading data from the
database.</description>
<config-property-name>FetchGroups</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>If true, then all fields of all classes in a given
inheritance hierarchy will by default map into the least-derived type's
default primary table. If false then a new default primary table will be
created for each class in the inheritance hierarchy, and each type's
declared fields will map to that table by default.</description>
<config-property-name>FlatInheritanceMapping</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>true</config-property-value>
</config-property>
<config-property>
<description>A String value indicating whether or not Kodo should
automatically flush modifications to the data store before executing
queries.</description>
<config-property-name>FlushBeforeQueries</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>with-connection</config-property-value>
</config-property>
<config-property>
<description>If false, then the JDO implementation must consider
modifications, deletions, and additions in the PersistenceManager
transaction cache when executing a query inside a transaction. Else, the
implementation is free to ignore the cache and execute the query directly
against the data store.</description>
<config-property-name>IgnoreCache</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>false</config-property-value>
</config-property>
<config-property>
<description>The license key provided to you by SolarMetric. Keys
are available at www.solarmetric.com</description>
<config-property-name>LicenseKey</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>xxxx</config-property-value>
</config-property>
<config-property>
<description>The name of the class to use for obtaining a reference
to the transaction manager in an enterprise environment. Must implement
the com.solarmetric.kodo.ee.ManagedRuntime interface.</description>
<config-property-name>ManagedRuntimeClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>com.solarmetric.kodo.ee.AutomaticManagedRuntime</config-property-value>
</config-property>
<config-property>
<description>A space-separated list of properties to pass to the
class defined in com.solarmetric.kodo.ManagedRuntimeClass upon
initialization.</description>
<config-property-name>ManagedRuntimeProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The maximum number of connections to pool. If all of
these are in use, then PersistenceManager instances must wait for a
connection to become available. This option has been removed from the
specification, but we still use the javax.jdo.option for backwards
compatibility.</description>
<config-property-name>MaxPool</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>200</config-property-value>
</config-property>
<config-property>
<description>The minimum number of connections to keep in the pool.
This option has been removed from the specification, but we still use the
javax.jdo.option for backwards compatibility.</description>
<config-property-name>MinPool</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>2</config-property-value>
</config-property>
<config-property>
<description>The number of milliseconds to wait for a pooled
connection before throwing an exception if the pool is empty. This option
has been removed from the specification, but we still use the
javax.jdo.option for backwards compatibility.</description>
<config-property-name>MsWait</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>30000</config-property-value>
</config-property>
<config-property>
<description>If true, then the application plans to have multiple
threads simultaneously accessing a single PersistenceManager, so measures
must be taken to ensure that the implementation is thread-safe. Otherwise,
the implementation need not address thread safety.</description>
<config-property-name>Multithreaded</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>false</config-property-value>
</config-property>
<config-property>
<description>If true, then it is possible to read persistent data
outside the context of a transaction. Otherwise, a transaction must be in
progress in order read data.</description>
<config-property-name>NontransactionalRead</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>true</config-property-value>
</config-property>
<config-property>
<description>If true, then it is possible to write to fields of a
persistent-nontransactional object when a transaction is not in progress.
If false, such a write will result in a JDOUserException.</description>
<config-property-name>NontransactionalWrite</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>false</config-property-value>
</config-property>
<config-property>
<description>Selects between optimistic and pessimistic (data store)
transactional modes.</description>
<config-property-name>Optimistic</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>false</config-property-value>
</config-property>
<config-property>
<description>The name of the class that the
PersistenceManagerFactory should create when creating a new
PersistenceManagerImpl. Must extend
com.solarmetric.kodo.runtime.PersistenceManagerImpl.</description>
<config-property-name>PersistenceManagerClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The name of the concrete implementation of
javax.jdo.PersistenceManagerFactory that
javax.jdo.JDOHelper.getPersistenceManagerFactory () should create. For
Kodo JDO, this should be
com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory or
com.solarmetric.kodo.impl.jdbc.ee.EEPersistenceManagerFactory, or a custom
extension of one of these types.</description>
<config-property-name>PersistenceManagerFactoryClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory</config-property-value>
</config-property>
<config-property>
<description>A space-separated list of properties to pass to the
class defined in com.solarmetric.kodo.PersistenceManagerClass upon
initialization.</description>
<config-property-name>PersistenceManagerProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>A comma-separated list of classes that will be
initialized whenever a new PersistenceManager is instantiated. This can be
used to get around issues with application identity classes not being
associated with their respective persistent classes.</description>
<config-property-name>PersistentTypes</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The name of the class to use to proxy second class
objects in managed instances. Must implement
com.solarmetric.kodo.util.ProxyManager.</description>
<config-property-name>ProxyManagerClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>com.solarmetric.kodo.util.SimpleProxyManager</config-property-value>
</config-property>
<config-property>
<description>A space-separated list of properties to pass to the
class defined in com.solarmetric.kodo.ProxyManagerClass upon
initialization.</description>
<config-property-name>ProxyManagerProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The name of the class to use for caching of queries
loaded from the data store. Must implement
com.solarmetric.kodo.runtime.datacache.QueryCache.</description>
<config-property-name>QueryCacheClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>com.solarmetric.kodo.runtime.datacache.query.QueryCacheImpl</config-property-value>
</config-property>
<config-property>
<description>A space-separated list of properties to pass to the
class defined in com.solarmetric.kodo.QueryCacheClass upon
initialization.</description>
<config-property-name>QueryCacheProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>A list of query filter listeners to add to the default
list of extensions. Ignored if com.solarmetric.kodo.EnableQueryExtensions
is false.</description>
<config-property-name>QueryFilterListeners</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The name of the class to use for communicating commit
information among JVMs. Must implement
com.solarmetric.kodo.runtime.event.RemoteCommitProvider.</description>
<config-property-name>RemoteCommitProviderClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>A space-separated list of properties to pass to the
class defined in com.solarmetric.kodo.RemoteCommitProviderClass upon
initialization.</description>
<config-property-name>RemoteCommitProviderProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>If true, then fields in a persistence-capable object
that have been changed during a transaction will be rolled back to their
original values upon a rollback. Otherwise, the values will not be changed
upon rollback.</description>
<config-property-name>RestoreValues</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>true</config-property-value>
</config-property>
<config-property>
<description>The name of the class that will be used as the
Collection implementation for returning ResultList instances. It must be
an instance of
com.solarmetric.kodo.runtime.objectprovider.ResultList.</description>
<config-property-name>ResultListClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The property string used to configure the instance of
the ResultListClass.</description>
<config-property-name>ResultListProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>If true, then fields in a persistence-capable object
that have been read during a transaction must be preserved in memory after
the transaction commits. Otherwise, persistence-capable objects must
transition to the hollow state upon commit, meaning that subsequent reads
will result in a database round-trip.</description>
<config-property-name>RetainValues</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>false</config-property-value>
</config-property>
<config-property>
<description>The name of the class to use for generating sequence
numbers when using data store identity. Must implement the
com.solarmetric.kodo.impl.jdbc.SequenceFactory interface.</description>
<config-property-name>SequenceFactoryClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>com.solarmetric.kodo.impl.jdbc.schema.DBSequenceFactory</config-property-value>
</config-property>
<config-property>
<description>A space-separated list of properties to pass to the
class defined in com.solarmetric.kodo.impl.jdbc.SequenceFactoryClass upon
initialization.</description>
<config-property-name>SequenceFactoryProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The class names of a SQLExecutionListener
implementation to install on the SQLExecutionManager.</description>
<config-property-name>SQLExecutionListenerClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The name of a custom SQLExecutionManager to be used for
all issuance of SQL to the data store. Must implement
com.solarmetric.kodo.impl.jdbc.SQLExecutionManager.</description>
<config-property-name>SQLExecutionManagerClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl</config-property-value>
</config-property>
<config-property>
<description>The size of the PreparedStatement cache that is
maintained in the DataSource implementation.</description>
<config-property-name>StatementCacheMaxSize</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>70</config-property-value>
</config-property>
<config-property>
<description>The time, in seconds, after which a JDBC query will be
aborted if it has not yet returned any values. This value is simply passed
to the JDBC driver's Statement.setTimeout method; Kodo does not perform
any addition timeout actions. Note that many JDBC drivers either ignore
this request, or improperly handle it, which may result in application
deadlocks.</description>
<config-property-name>StatementExecutionTimeout</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>-1</config-property-value>
</config-property>
<config-property>
<description>If true, the Kodo runtime will automatically attempt to
refresh the database schema when persistent classes are referenced,
allowing the developer to bypass the schematool step. This property is
only intended to be used for development. As automatic schema migration
can result in data loss, this feature should never be enabled on a
production system. Furthermore, this feature has serious adverse affects
on Kodo's runtime performace. Ensure that it is disabled before doing any
performance analysis.</description>
<config-property-name>SynchronizeSchema</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>false</config-property-value>
</config-property>
<config-property>
<description>The name of the class to use to store
persistence-capable objects involved in a PM's transaction cache. Must
implement com.solarmetric.kodo.runtime.StateManagerSet.</description>
<config-property-name>TransactionCacheClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>com.solarmetric.kodo.runtime.FifoStateManagerSet</config-property-value>
</config-property>
<config-property>
<description>A space-separated list of properties to pass to the
class defined in com.solarmetric.kodo.TransactionCacheClass upon
initialization.</description>
<config-property-name>TransactionCacheProperties</config-property-name>
<config-property-type>java.lang.String</config-property -
Kodo logging issue on IBM WAS 5.0
Hi All,
Thank you for reading this. I could use a good advice here, I have been
banging my head against wall for a while ...
We have a J2EE application that uses Kodo 2.4.2 with IBM WAS 5.0. Due to
'class not found' problems (related to registering the PMfactory with
JNDI, I reckon), I was forced to use a Websphere extension classloader to
load Kodo. (deploy Kodo libraries to c:\program
files\websphere\AddServer\lib\ext )
That is good and well, however now I want to configure logging (Log4J) for
Kodo. To do that, I have tried (feels like I have tried it all ;-)) to put
the log4j.properties to:
c:\program files\websphere\AddServer\properties\log4j.properties
c:\program files\websphere\AddServer\lib\ext\log4j.jar!log4j.properties
c:\program files\websphere\AddServer\lib\ext\log4j.properties
inside of the Kodo.jar (desperate people do desperate things ;-))
log4j.properties is also referenced as a part of shared library
Just for completness, log4j.properties also exists in Java utility jar
file that is part of EAR file (although that probably would not help the
Websphere extension classloader-loaded classes)
I have also tried to define the log4j.configuration in my startServer.bat:
SET LOG4J=-Dlog4j.configuration=file:/c:/log4j.properties
echo LOG4J set %LOG4J%
"%JAVA_HOME%\bin\java" %LOG4J% %WAS_TRACE%
To initialize Log4J differently. Yes, you guessed right, that damn thing
still does not work. What am I missing???
What exactly is happening when Kodo/Log4j configures the logging?
It may sound like just a nuisance, but it is actually quite important,
because we are just inch from production and need to get rid of heaps of
debuging messages (including the annoying SQL Server induced close cursor
exceptions). It just would not shut up!!! ;-))))
Any idea how to silence the bloody thing beside turning off the power? ;-)
Thank you,
PetrPetr-
The easiest thing to do would be to put some code in your application
that will give information on the definitive location of the
log4j.properties file. E.g.:
System.out.println (getClass().getClassLoader().getResource("/log4j.properties"));
Other than that, note that there are a variety of System properties you
can use to override the logging system that will be use. The Kodo 2.5
documentation covers this a bit better than the 2.4 docs:
http://www.solarmetric.com/Software/Documentation/2.5.0b1/docs/manual.html#ref_guide_logging
Finally, note that some application servers use log4j internally for
logging, and configure it differently (e.g., JBoss uses a log4j.xml
file, rather than a log4j.properties file). You might want to check the
documentation of your appserver to determine if there is an alternate
mechanism for configuring log4j.
Let us know if you still need help with this.
In article <[email protected]>, Petr Bulanek wrote:
Hi All,
Thank you for reading this. I could use a good advice here, I have been
banging my head against wall for a while ...
We have a J2EE application that uses Kodo 2.4.2 with IBM WAS 5.0. Due to
'class not found' problems (related to registering the PMfactory with
JNDI, I reckon), I was forced to use a Websphere extension classloader to
load Kodo. (deploy Kodo libraries to c:\program
files\websphere\AddServer\lib\ext )
That is good and well, however now I want to configure logging (Log4J) for
Kodo. To do that, I have tried (feels like I have tried it all ;-)) to put
the log4j.properties to:
c:\program files\websphere\AddServer\properties\log4j.properties
c:\program files\websphere\AddServer\lib\ext\log4j.jar!log4j.properties
c:\program files\websphere\AddServer\lib\ext\log4j.properties
inside of the Kodo.jar (desperate people do desperate things ;-))
log4j.properties is also referenced as a part of shared library
Just for completness, log4j.properties also exists in Java utility jar
file that is part of EAR file (although that probably would not help the
Websphere extension classloader-loaded classes)
I have also tried to define the log4j.configuration in my startServer.bat:
SET LOG4J=-Dlog4j.configuration=file:/c:/log4j.properties
echo LOG4J set %LOG4J%
"%JAVA_HOME%\bin\java" %LOG4J% %WAS_TRACE%
To initialize Log4J differently. Yes, you guessed right, that damn thing
still does not work. What am I missing???
What exactly is happening when Kodo/Log4j configures the logging?
It may sound like just a nuisance, but it is actually quite important,
because we are just inch from production and need to get rid of heaps of
debuging messages (including the annoying SQL Server induced close cursor
exceptions). It just would not shut up!!! ;-))))
Any idea how to silence the bloody thing beside turning off the power? ;-)
Thank you,
Petr
Marc Prud'hommeaux [email protected]
SolarMetric Inc. http://www.solarmetric.com -
Configuration of logging severity
Hello everyone,
I am trying to use the weblogic Admin console to modify the logging severity at runtime. I have an application deployed on the AdminServer.
In the web console, I go to the AdminServer Settings page and navigate to the Logging tab. I click the "Advanced" link to show the "Logger severity properties". In this box I have tried entering many different values. I save. There is no change to the logs. I restart the server, there is still no change to the logs.
Some values I've attempted to use:
com.mycompany.level=Trace
com.mycompany.level=Debug
com.mycompany=Trace
com.mycompany=Debug
.level=Trace
.level=Debug
I am using weblogic 10.3.2.0 with jdk logging.
Does anyone know if these configuration changes are supposed to affect the log files? Am I using this configuration parameter incorrectly?
Note that I have found a way to configure the logging severity using a logging.properties file, by calling:
LogManager.getLogManager().readConfiguration(EventDAOEJBImpl.class.getResourceAsStream("/logging.properties"));
However, this does not allow me to configure the application from the weblogic console. Is there a way to configure the logging severity using the weblogic console?You may want to ask in the WebLogic Server - Diagnostics / WLDF / SNMP forum. They own logging.
I asked them to reply to this message. -
How to configur log4j logging for weblogic 10.1
Hi,
I am tried to set log4j logging for my application running in weblogic 10.1. I set a log4j.properties file and loaded the properties by a servlet. Where its load the properties files and configure it by PropertyConfigurator.
The same logic has worked out in websphere. But in weblogic, it is not working. I set the server logging and domain logging to Log4j in Admin console. Now it is writing all the log statements.
If i write a property for a package to Error level and root level is Debug. Its not working, all debug statements are getting written.
Can you please tell me the steps to configure log4j logging in weblogic 10.1.
Thanks & Regards,
Nasrin.NDid you manage to get this working?
If yes ... what did you do?
I am having the same problem implementing commons-logging with log4j -
Configuring Kodo default implementation for field of Collection type
If I am not mistaken default implementation for field of Collection type in
Kodo is
LinkedList based proxy. It would be great if it were possible to configure
Kodo to use a proxy of my choosing
I did some tests and it seems to me that ArrayList is much more efficient
than Linked list (see below)
Is there any specific reason I am not aware of that makes LinkedList better
than array list
In my applications all collections a relatively small (or at least most of
my collections are definitely small)
and since I use Collection interface there is no inserts into middle of my
collections - only appends (which ArrayList handles very well)
So my question is can I make Kodo to use ArrayListProxy for fields of
Collection type
(except of course using ArrayList field instead of Collection which I do not
want to do)
below is some statistics on collection performance (populating and iterating
collections)
the same test against 3 collections implementations (JDK 1.4.1)
Not only ArrayList by far the fastest and memory friendly it also garbage
collected much sooner and better -
I show here max memory consumption and last to would not be garbage
collected till all memory is in use (old generation GC)
and ArrayList seems to be collected by young gen GC because it was collected
very quickly between test cycles why other only when all memory was used
So please make ArrayList your default collection implementation :-)
Small collection size (40)
time(ms) memory(kb)
ArrayList 5,218 62,154
LinkedList 14,125 240,066
HashSet 27,000 311,825
the same but using using random inserts - append(index, object) rather than
append(object):
ArrayList 8937, 53591
LinkedList 15047, 240066
Larger collection size (200)
ArrayList 4860, 47709
LinkedList 18468, 290704
HashSet 34391, 422282
the same but using using random inserts - append(index, object) rather than
append(object):
ArrayList 11844, 47709
LinkedList 25766, 290704You should be able to accomplish this fairly easily by extending
SimpleProxyManager:
http://solarmetric.com/Software/Documentation/2.4.3/docs/javadoc/com/solarmetric/kodo/util/SimpleProxyManager.html
and overriding the appropriate methods (getCollectionCopy and
getCollectionProxy).
On Mon, 12 May 2003 12:26:21 -0400, Alex Roytman wrote:
If I am not mistaken default implementation for field of Collection type in
Kodo is
LinkedList based proxy. It would be great if it were possible to configure
Kodo to use a proxy of my choosing
I did some tests and it seems to me that ArrayList is much more efficient
than Linked list (see below)
Is there any specific reason I am not aware of that makes LinkedList better
than array list
In my applications all collections a relatively small (or at least most of
my collections are definitely small)
and since I use Collection interface there is no inserts into middle of my
collections - only appends (which ArrayList handles very well)
So my question is can I make Kodo to use ArrayListProxy for fields of
Collection type
(except of course using ArrayList field instead of Collection which I do not
want to do)
below is some statistics on collection performance (populating and iterating
collections)
the same test against 3 collections implementations (JDK 1.4.1)
Not only ArrayList by far the fastest and memory friendly it also garbage
collected much sooner and better -
I show here max memory consumption and last to would not be garbage
collected till all memory is in use (old generation GC)
and ArrayList seems to be collected by young gen GC because it was collected
very quickly between test cycles why other only when all memory was used
So please make ArrayList your default collection implementation :-)
Small collection size (40)
time(ms) memory(kb)
ArrayList 5,218 62,154
LinkedList 14,125 240,066
HashSet 27,000 311,825
the same but using using random inserts - append(index, object) rather than
append(object):
ArrayList 8937, 53591
LinkedList 15047, 240066
Larger collection size (200)
ArrayList 4860, 47709
LinkedList 18468, 290704
HashSet 34391, 422282
the same but using using random inserts - append(index, object) rather than
append(object):
ArrayList 11844, 47709
LinkedList 25766, 290704 -
How to configure the logging and tracing in J2EE-Server
Hi,
when I've been using the SAP Logging and Tracing Framework before from more or less "standalone" Applications I always used a property file which configured the levels of severity etc.. During application startup I've read this file and configured the logging properly.
In a J2EE-Environment (SAP WEB AS JAVA) I cannot read a file from a file - system. So I'm wondering where are those handlers and severity levels are configured ?
Any help is greatly appreciated.
Thanks in advance,
FrankHi Frank,
well, first of all, your application provides log configuration information using an XML file at deployment time. This file is called log-configuration.xml (you can see the DTD description here: http://help.sap.com/saphelp_nw04/helpdata/en/48/ef8748caed894bb4b3ae953a60c592/frameset.htm). There you can set configure log controllers, which could be two types: location and category. So, you can specify your location and severity there. This is described here: http://help.sap.com/saphelp_nw04/helpdata/en/35/671c0136b4714c9e1b16b68211287b/frameset.htm.
Then, after the application is deployed, the log configurations you provided for it are registered with the Log Configuration tool I mentioned about. Using this tool you can later on modify your configurations at runtime (for example, change the severity level) without having to redeploy the application.
I hope it's clearer now? I guess it was me not getting your first question correctly that caused your confusion.
Greetings,
Ivo -
Configuration Change log in Production
Hi all
Some configuration changes have been directly made in production at our client. How can we find out what changes are made? Going into SCC4 > Change logs, I could find out who made all the changes. But it does not show what configuration changes are made.
Thanks
VamsiDear Vamsi,
I'm not sure whether in a single report you can fetch all the changes related to configuration for a particular module.
But I'm sure in most of the nodes the configuration change logs gets recorded.Check these links,
Re: How to find when a new Material type is created
Configuration change Log
Regards
Mangalraj.S -
when i select configure diagnostic logging in central admin i get the following error
error file not found
in uls logs i see the following
07/01/2014 13:25:12.93 w3wp.exe (0x1998) 0x0844 SharePoint Foundation Logging Correlation Data xmnv Medium Name=Request (GET:http://vsrsp10qaapp:9999/_admin/metrics.aspx) 6c6d233a-fb35-491e-87c2-ba4ab41afeb1
07/01/2014 13:25:12.93 w3wp.exe (0x1998) 0x0844 SharePoint Foundation Logging Correlation Data xmnv Medium Site=/ 6c6d233a-fb35-491e-87c2-ba4ab41afeb1
07/01/2014 13:25:12.95 w3wp.exe (0x1998) 0x0844 SharePoint Foundation Runtime tkau Unexpected System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Practices.ServiceLocation, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. at Microsoft.Opex.Rkm.Common.Logging.DiagnosticsService.ProvideAreas() at Microsoft.SharePoint.Administration.SPDiagnosticsServiceBase.EnsureAreas()
at Microsoft.SharePoint.Administration.SPDiagnosticsServiceBase.get_Areas() at Microsoft.SharePoint.ApplicationPages.MetricsPage.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 6c6d233a-fb35-491e-87c2-ba4ab41afeb1
07/01/2014 13:25:12.96 w3wp.exe (0x1998) 0x0844 SharePoint Foundation Monitoring b4ly Medium Leaving Monitored Scope (Request (GET:http://vsrsp10qaapp:9999/_admin/metrics.aspx)). Execution Time=29.7579720327584 6c6d233a-fb35-491e-87c2-ba4ab41afeb1
07/01/2014 13:25:14.94 w3wp.exe (0x1998) 0x0814 SharePoint Foundation Topology e5mc Medium WcfSendRequest: RemoteAddress: 'http://vsrsp10qaapp:32843/9283a893bbd8454982688fd214f2cf85/MetadataWebService.svc' Channel: 'Microsoft.SharePoint.Taxonomy.IMetadataWebServiceApplication'
Action: 'http://schemas.microsoft.com/sharepoint/taxonomy/soap/IDataAccessReadOnly/GetChanges' MessageId: 'urn:uuid:6657c8c4-fd07-4545-984a-5d9121ad29f5'
07/01/2014 13:25:14.94 w3wp.exe (0x0C18) 0x1450 SharePoint Foundation Topology e5mb Medium WcfReceiveRequest: LocalAddress: 'http://vsrsp10qaapp.southerntrust.local:32843/9283a893bbd8454982688fd214f2cf85/MetadataWebService.svc'
Channel: 'System.ServiceModel.Channels.ServiceChannel' Action: 'http://schemas.microsoft.com/sharepoint/taxonomy/soap/IDataAccessReadOnly/GetChanges' MessageId: 'urn:uuid:6657c8c4-fd07-4545-984a-5d9121ad29f5' b1d3864d-60a0-4625-bb4c-7644b54846b4
07/01/2014 13:25:14.94 w3wp.exe (0x0C18) 0x1450 SharePoint Foundation Monitoring nasq Medium Entering monitored scope (ExecuteWcfServerOperation) b1d3864d-60a0-4625-bb4c-7644b54846b4
i have carried out an iisreset and restart of the server problem still exists.
health analyser is report an error
Could not load file or assembly 'Microsoft.Practices.ServiceLocation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.If you still have the WSP for that solution, use 7-Zip to open it. See if it had Microsoft.Practices.ServiceLocation.dll
in it, or if you have the developers on staff, ask.
Trevor Seward
Follow or contact me at...
  
This post is my own opinion and does not necessarily reflect the opinion or view of Microsoft, its employees, or other MVPs. -
C:\Program Files\Microsoft Configuration Manager\Logs not updating
Hi,
Anybody exprienced the scenario where logfiles in C:\Program Files\Microsoft Configuration Manager\Logs don't update anymore?
F.e. wsyncmgr.log is of beginning of April, no recent logs there except for 7 items: smsprov.smspxe, smsdpusage (date from Today).
Pls advise.
J.
Jan HoedtOpen ConfigMgr Service Manager and check the logging options (is logging for each component enabled at all? Is it really logging to the directory you examined?) You can also open the logs using notepad. cmtrace.exe sometimes does not display the entire
content if there are malformated lines.
Having installed ConfigMgr on the C:\ drive is not the best setup BTW.
Torsten Meringer | http://www.mssccmfaq.de -
Configure commons-logging formatting
I've managed to configure commons-logging to work with WebLogic but now I'd like to configure the log-output format.
Does anyone know how to change the output format?Yes, but the simplest thing to do is to not include
log4j.jar
If you don't want to use it, don't inlcude it.It's not possible. Our client wants a callendar. We have purchased dotj library which has a calendar. Unfortunately their library includes log4j.
But the application I have written uses commons logging and it should use jdk 1.4 logging otherwise logging doesn't work properly with SUN AS. -
Hi,
I need to find the configuration change log in development system. Do we have any transaction/report/program from which we can track all the configuration changes for a perticular object.
Thanks,
Vijayfor almost all customizing you can find the change history in menu tools within the cuistomizing.
-
Error while configuring kodo to lookup a datasource
We had a working application using EEPersistenceManagerFactory
I changed the kodo.properties to lookup a non XA JDBC datasource.
After that the application is working fine (it creates
,updates,deletes,finds record in the DB)
but SystemOut.log has the following error for every operation
We are using Kodo 2.5.0, Websphere 5.0 and Oracle 8
How can we avoid getting this error ?.
We tried to find any property on the Websphere datasource which can be
altered to avoid this error but no luck.
Thanks
Paresh
[10/7/03 15:30:45:467 IST] 3d8b2d1a MCWrapper E J2CA0081E: Method
destroy failed while trying to execute method destroy on ManagedConnection
com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl@437f6d23 from resource
<null>. Caught exception: com.ibm.ws.exception.WsException: DSRA0080E: An
exception was received by the Data Store Adapter. See original exception
message: Cannot call 'cleanup' on a ManagedConnection while it is still in
a transaction..
at
com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.<init>(DataStoreAdapterException.java:222)
at
com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.<init>(DataStoreAdapterException.java:172)
at
com.ibm.ws.rsadapter.AdapterUtil.createDataStoreAdapterException(AdapterUtil.java:182)
at
com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanupTransactions(WSRdbManagedConnectionImpl.java:1826)
at
com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.destroy(WSRdbManagedConnectionImpl.java:1389)
at com.ibm.ejs.j2c.MCWrapper.destroy(MCWrapper.java:1032)
at
com.ibm.ejs.j2c.poolmanager.FreePool.returnToFreePool(FreePool.java:259)
at com.ibm.ejs.j2c.poolmanager.PoolManager.release(PoolManager.java:777)
at com.ibm.ejs.j2c.MCWrapper.releaseToPoolManager(MCWrapper.java:1304)
at
com.ibm.ejs.j2c.ConnectionEventListener.connectionClosed(ConnectionEventListener.java:195)
at
com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.processConnectionClosedEvent(WSRdbManagedConnectionImpl.java:843)
at
com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.closeWrapper(WSJdbcConnection.java:569)
at com.ibm.ws.rsadapter.jdbc.WSJdbcObject.close(WSJdbcObject.java:132)
at
com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.close(SQLExecutionManagerImpl.java:814)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.release(JDBCStoreManager.java(Inlined
Compiled Code))
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.load(JDBCStoreManager.java(Compiled
Code))
at
com.solarmetric.kodo.runtime.StateManagerImpl.loadFields(StateManagerImpl.java(Compiled
Code))
at
com.solarmetric.kodo.runtime.StateManagerImpl.preSerialize(StateManagerImpl.java:784)
at com.paresh.core.vo.Release.jdoPreSerialize(Release.java)
at com.paresh.core.vo.Release.writeObject(Release.java)
at java.lang.reflect.Method.invoke(Native Method)
at
com.ibm.rmi.io.IIOPOutputStream.invokeObjectWriter(IIOPOutputStream.java:703)
at com.ibm.rmi.io.IIOPOutputStream.outputObject(IIOPOutputStream.java:671)
at
com.ibm.rmi.io.IIOPOutputStream.simpleWriteObject(IIOPOutputStream.java:146)
at
com.ibm.rmi.io.ValueHandlerImpl.writeValueInternal(ValueHandlerImpl.java:217)
at com.ibm.rmi.io.ValueHandlerImpl.writeValue(ValueHandlerImpl.java:144)
at com.ibm.rmi.iiop.CDROutputStream.write_value(CDROutputStream.java:1590)
at com.ibm.rmi.iiop.CDROutputStream.write_value(CDROutputStream.java:1107)
at
com.paresh.core.interfaces._EJSRemoteStatelessValidation_da16513c_Tie.findCorrectionAction(_EJSRemoteStatelessValidation_da16513c_Tie.java:309)
at
com.paresh.core.interfaces._EJSRemoteStatelessValidation_da16513c_Tie._invoke(_EJSRemoteStatelessValidation_da16513c_Tie.java:104)
at
com.ibm.CORBA.iiop.ServerDelegate.dispatchInvokeHandler(ServerDelegate.java:582)
at com.ibm.CORBA.iiop.ServerDelegate.dispatch(ServerDelegate.java:437)
at com.ibm.rmi.iiop.ORB.process(ORB.java:320)
at com.ibm.CORBA.iiop.ORB.process(ORB.java:1544)
at com.ibm.rmi.iiop.Connection.doWork(Connection.java:2063)
at com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl.java:63)
at com.ibm.ejs.oa.pool.PooledThread.run(ThreadPool.java:95)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:592)
kodo.properties
com.solarmetric.kodo.LicenseKey=
#com.solarmetric.kodo.ee.ManagedRuntimeProperties=TransactionManagerName=java:/TransactionManager
com.solarmetric.kodo.ee.ManagedRuntimeProperties=TransactionManagerName=TransactionFactory
TransactionManagerMethod=com.ibm.ejs.jts.jta.TransactionManagerFactory.getTransactionManager
#com.solarmetric.kodo.ee.ManagedRuntimeClass=com.solarmetric.kodo.ee.InvocationManagedRuntime
com.solarmetric.kodo.ee.ManagedRuntimeClass=com.solarmetric.kodo.ee.AutomaticManagedRuntime
#javax.jdo.PersistenceManagerFactoryClass=com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory
javax.jdo.PersistenceManagerFactoryClass=com.solarmetric.kodo.impl.jdbc.ee.EEPersistenceManagerFactory
javax.jdo.option.ConnectionFactoryName=ds/kodo/DataSource1
javax.jdo.option.Optimistic=true
javax.jdo.option.RetainValues=true
javax.jdo.option.NontransactionalRead=true
#com.solarmetric.kodo.DataCacheClass=com.solarmetric.kodo.runtime.datacache.plugins.CacheImpl
# Changing these to a non-zero value will dramatically increase
# performance, but will cause in-memory databases such as Hypersonic
# SQL to never exit when your main() method exits, as the pooled
# connections in the in-memory database will cause a daemon thread to
# remain running.
javax.jdo.option.MinPool=5
javax.jdo.option.MaxPool=10We do have a makeTransientAll() before the object returns from Session
Bean.
We also tried the JCA path
After installing the JCA RAR and doing a lookup for
PersistenceManagetFactory the same code is not throwing any exception.
The exception is thrown only if datasource is used.
Thanks
Paresh
Marc Prud'hommeaux wrote:
Paresh-
It looks like you are returning a collection of instances from an EJB,
which will cause them to be serialized. The serialization is happening
outside the context of a transaction, and Kodo needs to obtain a
connection. Websphere seems to not like that.
You have a few options:
1. Call makeTransientAll() on all the instances before you return them
from your bean methods
2. Manually instantiate all the fields yourself before sending them
back. You could use a bogus ObjectOutputStream to do this.
3. In 3.0, you can use the new detach() API to detach the instances
before sending them back to the client.
In article <[email protected]>, Paresh wrote:
We had a working application using EEPersistenceManagerFactory
I changed the kodo.properties to lookup a non XA JDBC datasource.
After that the application is working fine (it creates
,updates,deletes,finds record in the DB)
but SystemOut.log has the following error for every operation
We are using Kodo 2.5.0, Websphere 5.0 and Oracle 8
How can we avoid getting this error ?.
We tried to find any property on the Websphere datasource which can be
altered to avoid this error but no luck.
Thanks
Paresh
[10/7/03 15:30:45:467 IST] 3d8b2d1a MCWrapper E J2CA0081E: Method
destroy failed while trying to execute method destroy on ManagedConnection
com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl@437f6d23 from resource
<null>. Caught exception: com.ibm.ws.exception.WsException: DSRA0080E: An
exception was received by the Data Store Adapter. See original exception
message: Cannot call 'cleanup' on a ManagedConnection while it is still in
a transaction..
at
com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.<init>(DataStoreAdapterException.java:222)
at
com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException.<init>(DataStoreAdapterException.java:172)
at
com.ibm.ws.rsadapter.AdapterUtil.createDataStoreAdapterException(AdapterUtil.java:182)
at
com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanupTransactions(WSRdbManagedConnectionImpl.java:1826)
at
com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.destroy(WSRdbManagedConnectionImpl.java:1389)
at com.ibm.ejs.j2c.MCWrapper.destroy(MCWrapper.java:1032)
at
com.ibm.ejs.j2c.poolmanager.FreePool.returnToFreePool(FreePool.java:259)
at com.ibm.ejs.j2c.poolmanager.PoolManager.release(PoolManager.java:777)
at com.ibm.ejs.j2c.MCWrapper.releaseToPoolManager(MCWrapper.java:1304)
at
com.ibm.ejs.j2c.ConnectionEventListener.connectionClosed(ConnectionEventListener.java:195)
at
com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.processConnectionClosedEvent(WSRdbManagedConnectionImpl.java:843)
at
com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.closeWrapper(WSJdbcConnection.java:569)
at com.ibm.ws.rsadapter.jdbc.WSJdbcObject.close(WSJdbcObject.java:132)
at
com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerImpl.close(SQLExecutionManagerImpl.java:814)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.release(JDBCStoreManager.java(Inlined
Compiled Code))
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.load(JDBCStoreManager.java(Compiled
Code))
at
com.solarmetric.kodo.runtime.StateManagerImpl.loadFields(StateManagerImpl.java(Compiled
Code))
at
com.solarmetric.kodo.runtime.StateManagerImpl.preSerialize(StateManagerImpl.java:784)
at com.paresh.core.vo.Release.jdoPreSerialize(Release.java)
at com.paresh.core.vo.Release.writeObject(Release.java)
at java.lang.reflect.Method.invoke(Native Method)
at
com.ibm.rmi.io.IIOPOutputStream.invokeObjectWriter(IIOPOutputStream.java:703)
at com.ibm.rmi.io.IIOPOutputStream.outputObject(IIOPOutputStream.java:671)
at
com.ibm.rmi.io.IIOPOutputStream.simpleWriteObject(IIOPOutputStream.java:146)
at
com.ibm.rmi.io.ValueHandlerImpl.writeValueInternal(ValueHandlerImpl.java:217)
at com.ibm.rmi.io.ValueHandlerImpl.writeValue(ValueHandlerImpl.java:144)
at com.ibm.rmi.iiop.CDROutputStream.write_value(CDROutputStream.java:1590)
at com.ibm.rmi.iiop.CDROutputStream.write_value(CDROutputStream.java:1107)
at
com.paresh.core.interfaces._EJSRemoteStatelessValidation_da16513c_Tie.findCorrectionAction(_EJSRemoteStatelessValidation_da16513c_Tie.java:309)
at
com.paresh.core.interfaces._EJSRemoteStatelessValidation_da16513c_Tie._invoke(_EJSRemoteStatelessValidation_da16513c_Tie.java:104)
at
com.ibm.CORBA.iiop.ServerDelegate.dispatchInvokeHandler(ServerDelegate.java:582)
at com.ibm.CORBA.iiop.ServerDelegate.dispatch(ServerDelegate.java:437)
at com.ibm.rmi.iiop.ORB.process(ORB.java:320)
at com.ibm.CORBA.iiop.ORB.process(ORB.java:1544)
at com.ibm.rmi.iiop.Connection.doWork(Connection.java:2063)
at com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl.java:63)
at com.ibm.ejs.oa.pool.PooledThread.run(ThreadPool.java:95)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:592)
kodo.properties
com.solarmetric.kodo.LicenseKey=
#com.solarmetric.kodo.ee.ManagedRuntimeProperties=TransactionManagerName=java:/TransactionManager
>>
>
com.solarmetric.kodo.ee.ManagedRuntimeProperties=TransactionManagerName=TransactionFactory
>>
>
TransactionManagerMethod=com.ibm.ejs.jts.jta.TransactionManagerFactory.getTransactionManager
>>
>>
>
#com.solarmetric.kodo.ee.ManagedRuntimeClass=com.solarmetric.kodo.ee.InvocationManagedRuntime
>>
>
com.solarmetric.kodo.ee.ManagedRuntimeClass=com.solarmetric.kodo.ee.AutomaticManagedRuntime
>>
>>
>
#javax.jdo.PersistenceManagerFactoryClass=com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory
>>
>
javax.jdo.PersistenceManagerFactoryClass=com.solarmetric.kodo.impl.jdbc.ee.EEPersistenceManagerFactory
>>
javax.jdo.option.ConnectionFactoryName=ds/kodo/DataSource1
javax.jdo.option.Optimistic=true
javax.jdo.option.RetainValues=true
javax.jdo.option.NontransactionalRead=true
#com.solarmetric.kodo.DataCacheClass=com.solarmetric.kodo.runtime.datacache.plugins.CacheImpl
>>
>>
# Changing these to a non-zero value will dramatically increase
# performance, but will cause in-memory databases such as Hypersonic
# SQL to never exit when your main() method exits, as the pooled
# connections in the in-memory database will cause a daemon thread to
# remain running.
javax.jdo.option.MinPool=5
javax.jdo.option.MaxPool=10
Marc Prud'hommeaux [email protected]
SolarMetric Inc. http://www.solarmetric.com -
Adobe Document Services - http Response 500 - How to configure the logging?
We are building an application in Web Dynpro Java that fetches data from an R/3 system via an RFC connection and is then supposed to show said data in a pdf within an iview. For that task we want to use the InteractiveForm UIElement. We bind the data to its pdfSource in the iViewu2019s context. Currently the form only consists of a text field bound to one attribute element of the pdfSource context node.
The ADS webservice is configured according to the manuals found here:
http://help.sap.com/saphelp_nw70/helpdata/en/fa/0b700d6cfd4e03a8ec2186ba6ff4af/frameset.htm
and tested successfully under the following link
http://<portal_host>:<port>/AdobeDocumentServices/Config?style=document
However, when we execute the application, an error occurs in the webservice generating the pdf, namely Invalid Content-Type:text/html. The error occurs when the iView containing the form is shown for the first time, even before the attributes of the pdfSource context are filled with data (we expect to see an empty form).
As it seems the webservice is expected to return a MIME type of either application/pdf or text/xml (we donu2019t know for sure since the SAP manuals and forums are inconclusive here), but instead we get text/html. This seems to be due to the fact that the webservice exits with an http response 500 Internal Server Error (we used several network monitoring tools to confirm that such a response is sent). Since such http responses are but html files with an empty body, yet not xml or pdf, the aforementioned error does make sense to us, but we do not know what Internal Error has caused it.
The only help that SAP seems to provide for an error u201CInvalid Content-Type:text/htmlu201D in context with ADS points to an expiring password or otherwise poor configuration of the ADSUser, which (most certainly) is not our case here since, and as said above, the configuration was and can be tested successfully.
We then tried to view the logs for this error on the machine where the J2EE engine is running with ADS installed according to this (not very comprehensible) guide:
http://help.sap.com/saphelp_nw70/helpdata/de/97/ccfc3f0ac2c642e10000000a1550b0/frameset.htm
We cannot find anything relevant in the server.log of the Visual Administrator except this message (it is generated exactly when our error occurs u2013 the trace severity is set to ALL for all Adobe application elements according to manual):
Date , Time , Message , Severity , Category , Location , Application , User
12/08/2010 , 13:50:46:511 , application [webdynpro/dispatcher] Processing HTTP request to servlet [dispatcher] finished with error.
The error is: com.sap.tc.webdynpro.clientserver.adobe.pdfdocument.base.core.PDFDocumentRuntimeException: Failed to GENERATEPDF
Exception id: [0800274DA7ED00850000005B00000900000496E5919E28BA] , Error , /System/Server/WebRequests , com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl , sap.com/tcwddispwda , Guest
There is no error.pdf to be found on the file system and since neither have we known nor are we told by the error message, whether the underlying cause is is a render error or connection error or configuration error or what not, we donu2019t know whether the error.pdf is supposed to be generated at all.
Or could there be any other reason why generation didnu2019t take place?
Furthermore we canu2019t seem to be able to find any logs more verbose or detailed about this issue - at least not within the Visual Administrator or the portalu2019s nwa.
How is it possible to properly debug the webservice for pdf-generation or at least to retrieve a fully detailed log containing all notifications and exception stack traces etc.?
I am assuming that we are making some basic mistakes regarding the logging configuration - but what?
Our goal is to know what causes the 500 Internal Server Error response that causes the Incorrect Content-Type exception.
We are using a NetWeaver 7.01 portal installation with Adobe Document Services 7.01 installed on a Windows Server 2003 platform.
Any help is highly appreciated!
SergHave you tried restarting the Java PDF object in Visual Administrator? Once you do all of your config, you have to restart the PDF object (sao.com/tcwdpdfobject) for the changes to take place. I am assuming you've run all of the test programs in SAP (FP_TEST_00, FP_TEST_03, etc.). Is there any chance that the ADSUSER is locked somehow?
-
How to configure weblogic log file?
HI
How do i configure Weblogic server log file to log weblogic related information as well as my application?
I need to maintain one log file for weblogic and my application.
Thanks,Then glassfish instance is either not configured yet or installed somewhere else. Try looking under your user's home directory like C:\Documents and Settings\<username>\Application Data\glassfish\domains\domain1\logs
Maybe you are looking for
-
IPhone browser chooses a tiny illegible font
I've been working on a number of web sites, trying to improve their "accessibility", including being readable on various smartphones. One problem that keeps coming up is that the iPhone often picks tiny fonts that nobody can read, and using the "pinc
-
What causes my ipad to be very hot
what really make my ipad to be hot when using
-
How to use SD_VBAK_ARRAY_READ functional module
hello can you please tell me how to use SD_VBAK_ARRAY_READ functional module. that means what i have to pass and what i should get. Please help me
-
I am trying to improve the performance of a huge report (around 80,000) records. The application uses stateless session bean and it fetches the records in a loop one at a time. I want to change it in such a way it uses oracle stored procedure that fe
-
Controlling Folio Order In Viewer
Hi All- I have a quick viewer question. Is it possible for me to control the order of folios within the viewer? I am not creating sequential folios, so I would like one folio to remain the first in order within the viewer at all times. Is this possib