2011/06/21

Cordys: The value is not set for the parameter number

Today I ran into the following problem:

<log4j:event logger="com.cordys.xds.internal.transaction.query.XQYQuery" timestamp="1308643015133" level="ERROR" thread="Monitor Stream Reader Thread">
<log4j:message><![CDATA[Failed to execute query. Error: + '
<error
TYPE="Enumeration">
<elem>Error :com.microsoft.sqlserver.jdbc.SQLServerException: The value is not set for the parameter number 1.</elem>
</error>
']]></log4j:message>
<log4j:MDC><![CDATA[host=cvzlaca004 processid=1314]]></log4j:MDC>
<log4j:throwable><![CDATA[com.cordys.xds.transaction.exception.DatabaseQueryException: Failed to execute query. Error: + '
<error
TYPE="Enumeration">
<elem>Error :com.microsoft.sqlserver.jdbc.SQLServerException: The value is not set for the parameter number 1.</elem>
</error>
'
Trace:
at com.cordys.xds.internal.transaction.query.XQYQuery.executeQuery(XQYQuery.java:221)
at com.cordys.xds.internal.branch.BranchDataCache.prepareParentBranchHierarchy(BranchDataCache.java:325)
at com.cordys.xds.internal.branch.BranchDataCache.loadCacheValueInternal(BranchDataCache.java:134)
at com.eibus.util.cache.Cache.loadCacheValue(Cache.java:375)
at com.eibus.util.cache.Cache.get(Cache.java:264)
at com.cordys.xds.internal.branch.BranchDataCache.get(BranchDataCache.java:217)
at com.cordys.xds.internal.branch.BranchManagerImpl.getBranchDataValue(BranchManagerImpl.java:443)
at com.cordys.xds.internal.branch.BranchManagerImpl.getBranch(BranchManagerImpl.java:421)
at com.cordys.xds.internal.branch.BranchManagerImpl.getBranch(BranchManagerImpl.java:411)
at com.cordys.xds.internal.service.XDSServiceImpl.isValidBranch(XDSServiceImpl.java:353)
at com.cordys.xds.internal.service.XDSServiceImpl.getServer(XDSServiceImpl.java:329)
at com.cordys.task.xds.TaskUtil.createTaskBranch(TaskUtil.java:168)
at com.cordys.applicationconnector.task.TaskConnector.open(TaskConnector.java:56)
at com.eibus.soap.Processor.open(Processor.java:752)
at com.eibus.soap.Processor.startProcessor(Processor.java:1036)
at com.eibus.soap.ProcessStreamsHandler.startProcessor(ProcessStreamsHandler.java:681)
at com.eibus.soap.ProcessStreamsHandler$StreamReader.run(ProcessStreamsHandler.java:353)
]]></log4j:throwable>
<log4j:locationInfo class="com.cordys.xds.util.XDSLogger" method="exception" file="XDSLogger.java" line="242"/>
</log4j:event>

The reason for this problem is that the user did not have enough privilage on the database to execute this query. So Cordys needs to have db_writer, db_reader AND db_owner rights on the database!

It took me half a day to figure this out, so hopefully this helps other Cordys developers !

No comments:

Post a Comment