On Weblogic 12c getting class cast exception

571 views
Skip to first unread message

somesh acharya

unread,
Feb 4, 2015, 6:04:43 PM2/4/15
to p6spy...@googlegroups.com


Application is deployed on Weblogic 12 and Oracle 11g as the database.

Please let me know as to why the application logs following exception when it executes database queries 

 java.lang.ClassCastException: org.p6spy.oracle.jdbc.internal.OraclePreparedStatement$$EnhancerByCGLIB$$63576399 at weblogic.jdbc.wrapper.PreparedStatement_org_p6spy_oracle_jdbc_internal_OraclePreparedStatement$$EnhancerByCGLIB$$63576399.setFetchSize(Unknown Source)

Performed following configuration 
1.Move the p6spy.jar file to the $WLS_HOME/user_projects/domains/$DOMAIN_X/lib directory.
2.Move the spy.properties file to the $WLS_HOME/user_projects/domains/$DOMAIN_X directory.
3.In $WLS_HOME/user_projects/domains/$DOMAIN_X directory/config/jdbc/database.xml file updated url and driver-name tags as below
jdbc:p6spy:oracle:thin:@:/
com.p6spy.engine.spy.P6SpyDriver

Quinton McCombs

unread,
Feb 10, 2015, 10:40:00 PM2/10/15
to p6spy users on behalf of somesh acharya
Could you post the full stack trace?  Also, could you post the contents of your spy.properties file?



--
You received this message because you are subscribed to the Google Groups "p6spy users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to p6spy-users...@googlegroups.com.
To post to this group, send email to p6spy...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/p6spy-users/756ab183-4486-47c2-be91-444fc9adcbb4%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

somesh acharya

unread,
Feb 12, 2015, 6:16:57 AM2/12/15
to p6spy...@googlegroups.com
Please find below required stack trace and contents of syp.properties
A) Two instances of stack trace:-
1.)
 Caused by: java.lang.ClassCastException: org.p6spy.oracle.jdbc.internal.OracleResultSet$$EnhancerByCGLIB$$8e201296
 at weblogic.jdbc.wrapper.ResultSet_org_p6spy_oracle_jdbc_internal_OracleResultSet$$EnhancerByCGLIB$$8e201296.next(Unknown Source)
 at com.transactionproc.db.TransactionProcManagerSQLMgr.getConfiguration(TransactionProcManagerSQLMgr.java:44)
 at com.transactionproc.db.TransactionProcManagerDB.getConfiguration(TransactionProcManagerDB.java:33)
 at com.transactionproc.TransactionProcManager.initialise(TransactionProcManager.java:41)
 at com.ejb.TxnProcAgentFacade.initialise(TxnProcAgentFacade.java:30)
 at com.ejb.TxnProcAgentFacade_4ynv2i_ITransactionProcMgrImpl.__WL_invoke(Unknown Source)
 at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:32)
 at com.ejb.TxnProcAgentFacade_4ynv2i_ITransactionProcMgrImpl.initialise(Unknown Source)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:84)
 at $Proxy113.initialise(Unknown Source)
 at com.systemconsole.agents.TransactionProcAgent.initialise(TransactionProcAgent.java:37)
 at com.servlet.InitialisationServlet.init(InitialisationServlet.java:57)
 at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:299)
 at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:250)
 at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
 at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
 at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
 at weblogic.servlet.internal.StubSecurityHelper.initServletInstance(StubSecurityHelper.java:94)
 at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:82)
 at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:74)
 at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:60)
 at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:35)
 at weblogic.servlet.internal.ServletStubImpl.initStubLifecycleHelper(ServletStubImpl.java:638)
 at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:579)
 at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:1874)
 at weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:1848)
 at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1738)
 at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2741)
 at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1704)
 at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:782)
 at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:214)
 at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:208)
 at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:36)
 at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:70)
 at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:213)
 at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:111)
 at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:125)
 at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:214)
 at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:208)
 at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:36)
 at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:70)
 at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:25)
 at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:730)
 at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:36)
 at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:258)
 at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:61)
 at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165)
 at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
 at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:192)
 at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:369)
 at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:52)
 at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:200)
 at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:31)
 at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:240)
 at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:170)
 at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:124)
 at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:187)
 at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:95)
 ... 3 more
2.)
 2015-02-12 10:30:50,050 [ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)' ERROR ejb.LogManagerFacade - logError createdDate=Thu Feb 12 10:30:49 GMT 2015, component=TransactionProcessor, uniqueId=TransactionProcessor, severity = FATAL, nodeName = devapp1, processId = 23,  setNum = -1, messageNum = -1
java.lang.ClassCastException: org.p6spy.oracle.jdbc.internal.OracleStatement$$EnhancerByCGLIB$$5899bbb4
 at weblogic.jdbc.wrapper.PreparedStatement_org_p6spy_oracle_jdbc_internal_OracleStatement$$EnhancerByCGLIB$$5899bbb4.setFetchSize(Unknown Source)
 at com.db.BaseDAO.getPreparedStatement(BaseDAO.java:174)
 at com.db.BaseDAO.getPreparedStatement(BaseDAO.java:163)
 at com.db.BaseDAO.getPreparedStatement(BaseDAO.java:138)
 at com.log.db.DBLogDAO.insertError(DBLogDAO.java:40)
 at com.log.db.LogManagerImpl.logErrorToDb(LogManagerImpl.java:85)
 at com.log.db.LogManagerImpl.logError(LogManagerImpl.java:79)
 at com.log.ejb.LogManagerFacade.logError(LogManagerFacade.java:73)
 at com.log.ejb.LogManagerFacade.logAsyncError(LogManagerFacade.java:107)
 at com.log.ejb.LogManagerFacade_yhuy04_LogManagerFacadeRemoteImpl.__WL_invoke(Unknown Source)
 at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:32)
 at weblogic.ejb.container.internal.AsyncExecutor$Invoker.invoke(AsyncExecutor.java:207)
 at weblogic.ejb.container.internal.AsyncExecutor.run(AsyncExecutor.java:73)
 at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)
 at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
 at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
 
B) spy.properties files details
 
###
# #%L
# P6Spy
# %%
# Copyright (C) 2013 P6Spy
# %%
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# #L%
###
#################################################################
# P6Spy Options File                                            #
# See documentation for detailed instructions                   #
# http://p6spy.github.io/p6spy/2.0/configandusage.html          #
#################################################################
#################################################################
# MODULES                                                       #
#                                                               #
# Module list adapts the modular functionality of P6Spy.  #
# Only modules listed are active.              #
# (default is com.p6spy.engine.logging.P6LogFactory and         #
# com.p6spy.engine.spy.P6SpyFactory)                            #
# Please note that the core module (P6SpyFactory) can't be  #
# deactivated.              #
# Unlike the other properties, activation of the changes on     #
# this one requires reload.          #
#################################################################
#modulelist=com.p6spy.engine.spy.P6SpyFactory,com.p6spy.engine.logging.P6LogFactory,com.p6spy.engine.outage.P6OutageFactory
################################################################
# CORE (P6SPY) PROPERTIES                                      #
################################################################
# A comma separated list of JDBC drivers to load and register.
# (default is empty)
#
# Note: This is normally only needed when using P6Spy in an
# application server environment with a JNDI data source or when
# using a JDBC driver that does not implement the JDBC 4.0 API
# (specifically automatic registration).
#driverlist=oracle.jdbc.driver.OracleDriver
# for flushing per statement
# (default is false)
#autoflush = false
# sets the date format using Java's SimpleDateFormat routine.
# In case property is not set, miliseconds since 1.1.1970 (unix time) is used (default is empty)
dateformat=MM-dd-yy HH:mm:ss:SS
# prints a stack trace for every statement logged
stacktrace=false
# if stacktrace=true, specifies the stack trace to print
#stacktraceclass=
# determines if property file should be reloaded
# Please note: reload means forgetting all the previously set
# settings (even those set during runtime - via JMX)
# and starting with the clean table
# (default is false)
reloadproperties=true
# determines how often should be reloaded in seconds
# (default is 60)
reloadpropertiesinterval=60
# specifies the appender to use for logging
# Please note: reload means forgetting all the previously set
# settings (even those set during runtime - via JMX)
# and starting with the clean table
# (only the properties read from the configuration file)
# (default is com.p6spy.engine.spy.appender.FileLogger)
#appender=com.p6spy.engine.spy.appender.Slf4JLogger
#appender=com.p6spy.engine.spy.appender.StdoutLogger
appender=com.p6spy.engine.spy.appender.FileLogger
# name of logfile to use, note Windows users should make sure to use forward slashes in their pathname (e:/test/spy.log)
# (used for com.p6spy.engine.spy.appender.FileLogger only)
# (default is spy.log)
logfile = /app/weblogic/logs/spy.log
# append to the p6spy log file. if this is set to false the
# log file is truncated every time. (file logger only)
# (default is true)
append=true
# class to use for formatting log messages (default is: com.p6spy.engine.spy.appender.SingleLineFormat)
#logMessageFormat=com.p6spy.engine.spy.appender.SingleLineFormat
logMessageFormat=com.p6spy.engine.spy.appender.MultiLineFormat
# format that is used for logging of the date/time/... (has to be compatible with java.text.SimpleDateFormat)
# (default is dd-MMM-yy)
databaseDialectDateFormat=dd-MMM-yy HH:mm:ss:SS
# whether to expose options via JMX or not
# (default is true)
jmx=true
# if exposing options via jmx (see option: jmx), what should be the prefix used?
# jmx naming pattern constructed is: com.p6spy(.<jmxPrefix>)?:name=<optionsClassName>
# please note, if there is already such a name in use it would be unregistered first (the last registered wins)
# (default is none)
#jmxPrefix=
#################################################################
# DataSource replacement                                        #
#                                                               #
# Replace the real DataSource class in your application server  #
# configuration with the name com.p6spy.engine.spy.P6DataSource #
# (that provides also connection pooling and xa support).       #
# then add the JNDI name and class name of the real             #
# DataSource here                                               #
#                                                               #
# Values set in this item cannot be reloaded using the          #
# reloadproperties variable. Once it is loaded, it remains      #
# in memory until the application is restarted.                 #
#                                                               #
#################################################################
#realdatasource=
#realdatasourceclass=com.mysql.jdbc.jdbc2.optional.MysqlDataSource
#################################################################
# DataSource properties                                         #
#                                                               #
# If you are using the DataSource support to intercept calls    #
# to a DataSource that requires properties for proper setup,    #
# define those properties here. Use name value pairs, separate  #
# the name and value with a semicolon, and separate the         #
# pairs with commas.                                            #
#                                                               #
# The example shown here is for mysql                           #
#                                                               #
#################################################################
#realdatasourceproperties=port;3306,serverName;myhost,databaseName;jbossdb,foo;bar
#################################################################
# JNDI DataSource lookup                                        #
#                                                               #
# If you are using the DataSource support outside of an app     #
# server, you will probably need to define the JNDI Context     #
# environment.                                                  #
#                                                               #
# If the P6Spy code will be executing inside an app server then #
# do not use these properties, and the DataSource lookup will   #
# use the naming context defined by the app server.             #
#                                                               #
# The two standard elements of the naming environment are       #
# jndicontextfactory and jndicontextproviderurl. If you need    #
# additional elements, use the jndicontextcustom property.      #
# You can define multiple properties in jndicontextcustom,      #
# in name value pairs. Separate the name and value with a       #
# semicolon, and separate the pairs with commas.                #
#                                                               #
# The example shown here is for a standalone program running on #
# a machine that is also running JBoss, so the JDNI context     #
# is configured for JBoss (3.0.4).                              #
#                                                               #
# (by default all these are empty)                              #
#################################################################
#jndicontextfactory=org.jnp.interfaces.NamingContextFactory
#jndicontextproviderurl=localhost:1099
#jndicontextcustom=java.naming.factory.url.pkgs;org.jboss.nameing:org.jnp.interfaces
#jndicontextfactory=com.ibm.websphere.naming.WsnInitialContextFactory
#jndicontextproviderurl=iiop://localhost:900
################################################################
# P6 LOGGING SPECIFIC PROPERTIES                               #
################################################################
# filter what is logged
# please note this is a precondition for usage of: include/exclude/sqlexpression
# (default is false)
#filter=false
# comma separated list of strings to include
# please note that special characters escaping (used in java) has to be done for the provided regular expression
# (default is empty)
#include =
# comma separated list of strings to exclude
# (default is empty)
#exclude =
# sql expression to evaluate if using regex
# please note that special characters escaping (used in java) has to be done for the provided regular expression
# (default is empty)
#sqlexpression =
#list of categories to exclude: error, info, batch, debug, statement,
#commit, rollback and result are valid values
# (default is info,debug,result,resultset,batch)
#excludecategories=info,debug,result,resultset,batch
excludecategories=batch
# Execution threshold applies to the standard logging of P6Spy.      
# While the standard logging logs out every statement         
# regardless of its execution time, this feature puts a time  
# condition on that logging. Only statements that have taken  
# longer than the time specified (in milliseconds) will be    
# logged. This way it is possible to see only statements that 
# have exceeded some high water mark.                         
# This time is reloadable.                                    
#
# executionThreshold=integer time (milliseconds)
# (default is 0)
#executionThreshold=
################################################################
# P6 OUTAGE SPECIFIC PROPERTIES                                #
################################################################
# Outage Detection
#
# This feature detects long-running statements that may be indicative of
# a database outage problem. If this feature is turned on, it will log any
# statement that surpasses the configurable time boundary during its execution.
# When this feature is enabled, no other statements are logged except the long
# running statements. The interval property is the boundary time set in seconds.
# For example, if this is set to 2, then any statement requiring at least 2
# seconds will be logged. Note that the same statement will continue to be logged
# for as long as it executes. So if the interval is set to 2, and the query takes
# 11 seconds, it will be logged 5 times (at the 2, 4, 6, 8, 10 second intervals).
#
# outagedetection=true|false
# outagedetectioninterval=integer time (seconds)
#
# (default is false)
#outagedetection=false
# (default is 60)
#outagedetectioninterval=30
deregisterdrivers=true

Quinton McCombs

unread,
Feb 14, 2015, 5:00:20 PM2/14/15
to p6spy users on behalf of somesh acharya
I would like to try recreating the problem so that I can better understand the cause.  Could you either post the database.xml (password hidden) or email it to me directly?

somesh acharya

unread,
Feb 16, 2015, 6:25:25 AM2/16/15
to p6spy...@googlegroups.com
I have attached two dbsession files one is used in one phase commit and other is used in XA transaction.
Thanks for looking into it.


On Saturday, February 14, 2015 at 10:00:20 PM UTC, Quinton McCombs wrote:
I would like to try recreating the problem so that I can better understand the cause.  Could you either post the database.xml (password hidden) or email it to me directly?
DBSession-3398-jdbc.xml
DBSessionXA-5075-jdbc.xml

quick.w...@gmail.com

unread,
May 25, 2015, 11:56:54 PM5/25/15
to p6spy...@googlegroups.com
I'm also getting a similar error in Weblogic 10.3.6.

Restarting the server fixes it. Though it happens quite frequently.

Caused by: java.lang.ClassCastException: org.p6spy.com.p6spy.engine.proxy.P6Proxy$$EnhancerByCGLIB$$5bcc15b5 
at weblogic.jdbc.wrapper.ResultSet_org_p6spy_com_p6spy_engine_proxy_P6Proxy$$EnhancerByCGLIB$$5bcc15b5.next(Unknown Source) 
at org.hibernate.id.SequenceGenerator.generate(SequenceGenerator.java:78) 
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:85) 
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:184) 
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33) 
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:173) 
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27) 
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:69) 
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:481) 
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:476) 

Quinton McCombs

unread,
May 27, 2015, 10:01:39 AM5/27/15
to p6spy users
Is there any chance that you could submit a simple test case to allow me to re-create the issue?  Ideally, this would include a zipped copy of the domain as well.  Part of my problem with getting this issue resolved is lack of experience on weblogic.

On Mon, May 25, 2015 at 10:56 PM, <p6spy-users+APn2wQdmWtiT3kp1q87c...@googlegroups.com> wrote:
I'm also getting a similar error in Weblogic 10.3.6.

Restarting the server fixes it. Though it happens quite frequently.

Caused by: java.lang.ClassCastException: org.p6spy.com.p6spy.engine.proxy.P6Proxy$$EnhancerByCGLIB$$5bcc15b5 
at weblogic.jdbc.wrapper.ResultSet_org_p6spy_com_p6spy_engine_proxy_P6Proxy$$EnhancerByCGLIB$$5bcc15b5.next(Unknown Source) 
at org.hibernate.id.SequenceGenerator.generate(SequenceGenerator.java:78) 
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:85) 
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:184) 
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33) 
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:173) 
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27) 
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:69) 
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:481) 
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:476) 

On Monday, 16 February 2015 19:25:25 UTC+8, somesh acharya wrote:
I have attached two dbsession files one is used in one phase commit and other is used in XA transaction.
Thanks for looking into it.


On Saturday, February 14, 2015 at 10:00:20 PM UTC, Quinton McCombs wrote:
I would like to try recreating the problem so that I can better understand the cause.  Could you either post the database.xml (password hidden) or email it to me directly?
Reply all
Reply to author
Forward
0 new messages