Problems with Sequential Model in Run-Time. OI Crashes.
I would like to ask for help for the following Problem:
I am trying to run an Operator Interface which I created based on the TS Simple OI.
TestStand 3.1f1
LabVIEW 7.1.1
The sequence I am running is using a few file Globals for data exchange between the steps and calling the main sequence in another sequence file, based on the UUT barcode. The barcode resolves the sequence file name, where the appropriate UUT test sequence is. Most of the Steps are Express VIs.
Basically: The main sequence file executes, its defines the UUT to be tested, calls the MainSequence in the appropriate sequence file which after the tests returns. The main sequence file than ends the test, a report is generated.
Everything runs perfect in the TestStand Development Environment (Sequence Editor), no problem at all. But with the Operator Interface I am having great problems.
It is very strange, but after the second Single Pass (I am always using this entry point with the sequential Model) the Operator Interface crashes: *always*, on the 3rd (!) run I get the following Error:
Run-Time Error
Details: No details available
Error Code:-17502; System Level Exception.
Location: Step 'Send Model State Message: 'Initializing'' of sequence 'Single Pass' in 'SequentialModel.Seq'
Step Description: Call Thread.PostUIMessageEx
Step Status: Error
This is a Error originated from the Sequential Model sequence. After this I get different behaviors, sometimes memory access crashes, sometimes LabVIEW.exe Aplication must be shut down, the OI won't work again.
The same Problem hapens if I use the standard TestStand Simple OI or the Full-Featured OI !!! But only if I start these OIs via LabVIEW. If I start the OIs via executable (.exe provided) than everything runs like in the Sequence Editor, that is, without errors! Do they use different LV Run-Times? How can this happen?
With the sequence editor (LV Adapter configured to work with LV Dev. System - active Version 7.1) the sequence runs perfectly! With an OI the sequence crashes after the 3rd. run! Why?
The Whole NI directory (with TS and LV) was masscompliled (LabVIEW 7.1.1).
Now I need some help, it is really important for my work to get this OI working! I am looking forward for any replies!
Thanks a lot!
Regards,
- Caribe -
Hi Caribe,
At the moment I am un-able to reproduce your problem. I am using LabVIEW 7.1 and a TestStand beta, I have also used TestStand 3.0 and I am using the standard LabVIEW OI, run as exe and also the top level VI.
I shall try to get the update for LV7.1 and try again.
Regards
Ray Farmer
Message Edited by Support on 09-26-2005 03:06 PM
Regards
Ray Farmer
Similar Messages
-
Problem with distribution model receiver ports
Hi,
I am facing a problem with distribution model.
I am using Distribution model for material classification data. I am sending my classification data using CLFMAS message type to one of the receiver. Again another person also sending classification data to another receiver.
But both objects will run at different times.
Problem is for every run and every change it is creating 2 idocs instead of 1 idoc.
I am able to create an IDOC with my changes for classifications. But it is creating 2 idocu2019s instead of creating 1 idoc. Because of there is another distribution model with same message type with different receiver port has been configured. I.e. reason it is creating 2 idocu2019s and sending to both the revivers.
When I run my changes It needs to create 1 idoc and send to my receiver port. If another person run his job it needs to create another idoc.
So how will I filter distribution model based on receiver port? it needs to create only 1 IDOC ..Hi kotesh,
A similar issue.
check if this will help.
Do the following:
Go to TOOLS>ALE Development>IDoc Type Development> WE81 and create a new message type and give it a different name - say ORDERS2. Use WE82 to link it to an IDoc Type - say ORDERS05. So now you will have two message types linked to the same IDoc type. Each message type can now be referred in different logical systems without any clashes.
Now you can use BD64 to build your model using message types ORDERS and ORDERS2 without getting the multiple recepient error message.
Then use WE20 to set up each partner profile using your defined output conditions in message control to trigger the creation of the IDoc. Now you will beable to send the same Idoc type to different recepients.
source:http://sap.ittoolbox.com/groups/technical-functional/sap-interfaces/sap-distribution-model-3008763
Regards,
SuryaD. -
I installed Mavericks yesterday and have now got problems with QuarkXpress 9. Every time I click on an image and try to move it the application crashes. Anyone had similar problems or got any suggestions?
Hi Guys
Updated my 2 imacs to Maverick yesterday. Schoolboy error on my part not checking if there were problems with any programmes before I did.
Quark is now a nightmare with no short term answer on the way. As a Quark user for over 20 years this is just another reason to hold your hands up and say OK Indesign you win I will have to learn how to use you and Quark will be a distant memory.
I am told there will probably be no solution to getting quak 9 running on Maverick and that you will need to update to 10 in about 2-3 weeks to get back to normal. Having spent a few bob on 2 versions of 9.5 only in Feb this year i didn't really want to upgrade yet.
So its cough up to carry on using Quark or learn Indesign.
I have lost faith in Quark as they are quick to send me e-mails asking me to upgrade to this and that version, why didn't they send one out saying do not upgrade to Maverick. Perhaps they know there loyal follwing will uograde to 10 and will generate a nice little bonus before Xmas.
Lots to do today and will now take 10 times longer to do it. Is this 2013 or 1974!!!!!
If anyone hears of a solution please post ASAP -
How do i fixed my problem with my ipad apps every time i open that apps it takes 10min. to play the games ant its getting LOST MODE and the ipad system is crashing
We are fellow users here on these user-to-user forums, you're not talking to iTunes Support nor Apple.
Have you tried closing all apps via the iPad's multitasking bar and then doing a soft-reset and seeing that helps ? To close all apps :
iOS 7: double-click the home button to open the taskbar, and then swipe or drag each app's screen from there up and off the top of the screen to close it, and click the home button to close the taskbar.
iOS 6 and below : from the home screen (i.e. not with any app 'open' on-screen) double-click the home button to bring up the taskbar, then press and hold any of the apps on the taskbar for a couple of seconds or so until they start shaking, then press the '-' in the top left of each app to close it, and touch any part of the screen above the taskbar so as to stop the shaking and close the taskbar.
Soft-reset : press and hold both the sleep and home buttons for about 10 to 15 seconds (ignore the red slider), after which the Apple logo should appear - you won't lose any content, it's the iPad equivalent of a reboot. -
How can I map the composite_dn name with a composite in run time
Hi All,
I want to craete a report on number of total business and system faults with the help of Information Publisher in OEM 12c Cloud Control. I am fetching data from the table composite_instance_fault present in SOAINFRA schema. Below os my SQL statement:-
select error_category,count(error_category) from prefix_SOAINFRA.composite_instance_fault where composite_dn=??EMIP_BIND_TARGET_GUID?? group by error_category
Now I want to know that how can I map the composite_dn name with a composite in run time. When we fetch data from the repository we used to map target in rumtime by using ??EMIP_BIND_TARGET_GUID?? but here as I am not fetching data from repository, how can I map target in run time.
On executing the above SQL statement its returing an empty table without any data.
Please guide!!
Thanks in Advance!!Hi,
try something like this.
Mike
Attachments:
Unbenannt 5_LV80.vi 12 KB -
I have an iMac OS X 10.6.8 and have problems with the backup drive to Time Machine ejecting itself and so does not automatically backup the way it is meant to do. It is connected with an USB cable to my iMac. What could cause this - malfuntioning drive?
The "iLife" apps are not part of any Mac operating system install and are a separate purchase.
Once you get past 10.6.6 you can purchase and download iPhoto, GarageBand and iMovie. iWeb and iDVD have been discontinued.
Snow Leopard 10.6.6 and higher include the App Store application which is what you use to purchase Lion. -
Hi. I have got problem with my ITunes. Every time I´m opening the program I´ve got the message: One unkwown problem is appering (-42032) Can anybode please tell me what to do wit this error? Thanks
Gary,
discussions may sometimes be slow for an hour or so (at which point the opening page of discussions will eventually apologize for the inconvenience, back on line soon...) but your description looks like a cache problem.
Try OnyX freeware to do some cleanup and see if that helps.
http://www.titanium.free.fr/index.html -
Have problems with Mail on MacBook running OS X Mavericks. It suddenly became stuck: won't quit and won't display any messages. Please help.
Select Force Quit from under the Apple menu and select Mail (it may say that it isn't responding).
Clinton -
Problem with Configuring Tomcat for running jsp web applications..Plz HELP
I am using Tomcat 5.5 and Jdk 1.5.0_12 and Oracle 10g. I am using jdbc-odbc bridge connection
to connect to the database. I have placed my project folder called
tdm under the webapps folder in Tomcat. This 'tdm' folder consists of
a collection of html pages,jsp pages and images of my project. Also I created a
WEB-INF folderand in that I have lib folder which contains catalina-root.jar
, classes12.jar and nls_charset.jar files. And also in the WEB-INF folder I have the web.xml
file which looks like this
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
Copyright 2004 The Apache Software Foundation
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.
-->
<web-app>
<resource-ref>
<description>Oracle Datasource example</description>
<res-ref-name>jdbc/gdn</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
My Server.xml file in Tomcat\conf folder is as follows
<!-- Example Server Configuration File -->
<!-- Note that component elements are nested corresponding to their
parent-child relationships with each other -->
<!-- A "Server" is a singleton element that represents the entire JVM,
which may contain one or more "Service" instances. The Server
listens for a shutdown command on the indicated port.
Note: A "Server" is not itself a "Container", so you may not
define subcomponents such as "Valves" or "Loggers" at this level.
-->
<Server port="8005" shutdown="SHUTDOWN">
<!-- Comment these entries out to disable JMX MBeans support used for the
administration web application -->
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<!-- Global JNDI resources -->
<GlobalNamingResources>
<!-- Test entry for demonstration purposes -->
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users -->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
<Resource name="jdbc/gdn" auth="Container"
type="javax.sql.DataSource" driverClassName="sun.jdbc.odbc.JdbcOdbcDriver"
url="jdbc:odbc:gdn"
username="system" password="tiger" maxActive="20" maxIdle="10"
maxWait="-1"/>
</GlobalNamingResources>
<!-- A "Service" is a collection of one or more "Connectors" that share
a single "Container" (and therefore the web applications visible
within that Container). Normally, that Container is an "Engine",
but this is not required.
Note: A "Service" is not itself a "Container", so you may not
define subcomponents such as "Valves" or "Loggers" at this level.
-->
<!-- Define the Tomcat Stand-Alone Service -->
<Service name="Catalina">
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Each Connector passes requests on to the
associated "Container" (normally an Engine) for processing.
By default, a non-SSL HTTP/1.1 Connector is established on port 8080.
You can also enable an SSL HTTP/1.1 Connector on port 8443 by
following the instructions below and uncommenting the second Connector
entry. SSL support requires the following steps (see the SSL Config
HOWTO in the Tomcat 5 documentation bundle for more detailed
instructions):
* If your JDK version 1.3 or prior, download and install JSSE 1.0.2 or
later, and put the JAR files into "$JAVA_HOME/jre/lib/ext".
* Execute:
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA (Windows)
$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA (Unix)
with a password value of "changeit" for both the certificate and
the keystore itself.
By default, DNS lookups are enabled when a web application calls
request.getRemoteHost(). This can have an adverse impact on
performance, so you can disable it by setting the
"enableLookups" attribute to "false". When DNS lookups are disabled,
request.getRemoteHost() will return the String version of the
IP address of the remote client.
-->
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector
port="5050" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
<!-- Note : To disable connection timeouts, set connectionTimeout value
to 0 -->
<!-- Note : To use gzip compression you could set the following properties :
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml"
-->
<!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
<!--
<Connector port="8443"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
<!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
<!-- See proxy documentation for more information about using this. -->
<!--
<Connector port="8082"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" acceptCount="100" connectionTimeout="20000"
proxyPort="80" disableUploadTimeout="true" />
-->
<!-- An Engine represents the entry point (within Catalina) that processes
every request. The Engine implementation for Tomcat stand alone
analyzes the HTTP headers included with the request, and passes them
on to the appropriate Host (virtual host). -->
<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
-->
<!-- Define the top level container in our container hierarchy -->
<Engine name="Catalina" defaultHost="localhost">
<!-- The request dumper valve dumps useful debugging information about
the request headers and cookies that were received, and the response
headers and cookies that were sent, for all requests received by
this instance of Tomcat. If you care only about requests to a
particular virtual host, or a particular application, nest this
element inside the corresponding <Host> or <Context> entry instead.
For a similar mechanism that is portable to all Servlet 2.4
containers, check out the "RequestDumperFilter" Filter in the
example application (the source for this filter may be found in
"$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").
Request dumping is disabled by default. Uncomment the following
element to enable it. -->
<!--
<Valve className="org.apache.catalina.valves.RequestDumperValve"/>
-->
<!-- Because this Realm is here, an instance will be shared globally -->
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<!-- Comment out the old realm but leave here for now in case we
need to go back quickly -->
<!--
<Realm className="org.apache.catalina.realm.MemoryRealm" />
-->
<!-- Replace the above Realm with one of the following to get a Realm
stored in a database and accessed via JDBC -->
<!--
<Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="org.gjt.mm.mysql.Driver"
connectionURL="jdbc:mysql://localhost/authority"
connectionName="test" connectionPassword="test"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name" />
-->
<!--
<Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"
connectionName="scott" connectionPassword="tiger"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name" />
-->
<!--
<Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="sun.jdbc.odbc.JdbcOdbcDriver"
connectionURL="jdbc:odbc:CATALINA"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name" />
-->
<!-- Define the default virtual host
Note: XML Schema validation will not work with Xerces 2.2.
-->
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<!-- Defines a cluster for this node,
By defining this element, means that every manager will be changed.
So when running a cluster, only make sure that you have webapps in there
that need to be clustered and remove the other ones.
A cluster has the following parameters:
className = the fully qualified name of the cluster class
name = a descriptive name for your cluster, can be anything
mcastAddr = the multicast address, has to be the same for all the nodes
mcastPort = the multicast port, has to be the same for all the nodes
mcastBindAddr = bind the multicast socket to a specific address
mcastTTL = the multicast TTL if you want to limit your broadcast
mcastSoTimeout = the multicast readtimeout
mcastFrequency = the number of milliseconds in between sending a "I'm alive" heartbeat
mcastDropTime = the number a milliseconds before a node is considered "dead" if no heartbeat is received
tcpThreadCount = the number of threads to handle incoming replication requests, optimal would be the same amount of threads as nodes
tcpListenAddress = the listen address (bind address) for TCP cluster request on this host,
in case of multiple ethernet cards.
auto means that address becomes
InetAddress.getLocalHost().getHostAddress()
tcpListenPort = the tcp listen port
tcpSelectorTimeout = the timeout (ms) for the Selector.select() method in case the OS
has a wakup bug in java.nio. Set to 0 for no timeout
printToScreen = true means that managers will also print to std.out
expireSessionsOnShutdown = true means that
useDirtyFlag = true means that we only replicate a session after setAttribute,removeAttribute has been called.
false means to replicate the session after each request.
false means that replication would work for the following piece of code: (only for SimpleTcpReplicationManager)
<%
HashMap map = (HashMap)session.getAttribute("map");
map.put("key","value");
%>
replicationMode = can be either 'pooled', 'synchronous' or 'asynchronous'.
* Pooled means that the replication happens using several sockets in a synchronous way. Ie, the data gets replicated, then the request return. This is the same as the 'synchronous' setting except it uses a pool of sockets, hence it is multithreaded. This is the fastest and safest configuration. To use this, also increase the nr of tcp threads that you have dealing with replication.
* Synchronous means that the thread that executes the request, is also the
thread the replicates the data to the other nodes, and will not return until all
nodes have received the information.
* Asynchronous means that there is a specific 'sender' thread for each cluster node,
so the request thread will queue the replication request into a "smart" queue,
and then return to the client.
The "smart" queue is a queue where when a session is added to the queue, and the same session
already exists in the queue from a previous request, that session will be replaced
in the queue instead of replicating two requests. This almost never happens, unless there is a
large network delay.
-->
<!--
When configuring for clustering, you also add in a valve to catch all the requests
coming in, at the end of the request, the session may or may not be replicated.
A session is replicated if and only if all the conditions are met:
1. useDirtyFlag is true or setAttribute or removeAttribute has been called AND
2. a session exists (has been created)
3. the request is not trapped by the "filter" attribute
The filter attribute is to filter out requests that could not modify the session,
hence we don't replicate the session after the end of this request.
The filter is negative, ie, anything you put in the filter, you mean to filter out,
ie, no replication will be done on requests that match one of the filters.
The filter attribute is delimited by ;, so you can't escape out ; even if you wanted to.
filter=".*\.gif;.*\.js;" means that we will not replicate the session after requests with the URI
ending with .gif and .js are intercepted.
The deployer element can be used to deploy apps cluster wide.
Currently the deployment only deploys/undeploys to working members in the cluster
so no WARs are copied upons startup of a broken node.
The deployer watches a directory (watchDir) for WAR files when watchEnabled="true"
When a new war file is added the war gets deployed to the local instance,
and then deployed to the other instances in the cluster.
When a war file is deleted from the watchDir the war is undeployed locally
and cluster wide
-->
<!--
<Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
managerClassName="org.apache.catalina.cluster.session.DeltaManager"
expireSessionsOnShutdown="false"
useDirtyFlag="true"
notifyListenersOnReplication="true">
<Membership
className="org.apache.catalina.cluster.mcast.McastService"
mcastAddr="228.0.0.4"
mcastPort="45564"
mcastFrequency="500"
mcastDropTime="3000"/>
<Receiver
className="org.apache.catalina.cluster.tcp.ReplicationListener"
tcpListenAddress="auto"
tcpListenPort="4001"
tcpSelectorTimeout="100"
tcpThreadCount="6"/>
<Sender
className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
replicationMode="pooled"
ackTimeout="15000"/>
<Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;"/>
<Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
</Cluster>
-->
<!-- Normally, users must authenticate themselves to each web app
individually. Uncomment the following entry if you would like
a user to be authenticated the first time they encounter a
resource protected by a security constraint, and then have that
user identity maintained across all web applications contained
in this virtual host. -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all requests for this virtual host. By
default, log files are created in the "logs" directory relative to
$CATALINA_HOME. If you wish, you can specify a different
directory with the "directory" attribute. Specify either a relative
(to $CATALINA_HOME) or absolute path to the desired directory.
-->
<!--
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/>
-->
<!-- Access log processes all requests for this virtual host. By
default, log files are created in the "logs" directory relative to
$CATALINA_HOME. If you wish, you can specify a different
directory with the "directory" attribute. Specify either a relative
(to $CATALINA_HOME) or absolute path to the desired directory.
This access log implementation is optimized for maximum performance,
but is hardcoded to support only the "common" and "combined" patterns.
-->
<!--
<Valve className="org.apache.catalina.valves.FastCommonAccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/>
-->
<Context path="/tdm" docBase="tdm" debug="0" reloadable="true" />
</Host>
</Engine>
</Service>
</Server>
I have set the context path to /tdm in the server.xml file. Should this be placed in context.xml?
My first page in the project is called Homepage.html. To start my project I give http://localhost:5050/tdm/homepage.html
in a browser. Here I accept a username and password from the user and then do the validation in
a valid.jsp file, where I connect to the database and check and use jsp:forward to go to next pages
accordingly. However when I enter the username and password and click Go in the homepage, nothing is
displayed on the next page. The URL in the browser says valid.jsp but a blank screen appears.
WHY DOES IT HAPPEN SO? DOES IT MEAN THAT TOMCAT IS NOT RECOGNIZING JAVA IN MY SYSTEM OR IS IT A PROBLEM
WITH THE DATABASE CONNECTION OR SOMETHING ELSE? I FEEL THAT TOMCAT IS NOT EXECUTING JSP COMMANDS?
IS IT POSSIBLE?WHY WILL THIS HAPPEN?
I set the JAVA_HOME and CATALINA_HOME environment to the jdk and tomcat folders resp.
Is there any other thing that I need to set in classpath? Should I have my project as a
WAR file in the webapps of TOMCAT or just a folder i.e. directory structure will fine?I am using Tomcat 5.5 and Jdk 1.5.0_12 and Oracle 10g. I am using jdbc-odbc bridge connection
to connect to the database. I have placed my project folder called
tdm under the webapps folder in Tomcat. This 'tdm' folder consists of
a collection of html pages,jsp pages and images of my project. Also I created a
WEB-INF folderand in that I have lib folder which contains catalina-root.jar
, classes12.jar and nls_charset.jar files. And also in the WEB-INF folder I have the web.xml
file which looks like this
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
Copyright 2004 The Apache Software Foundation
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.
-->
<web-app>
<resource-ref>
<description>Oracle Datasource example</description>
<res-ref-name>jdbc/gdn</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
My Server.xml file in Tomcat\conf folder is as follows
<!-- Example Server Configuration File -->
<!-- Note that component elements are nested corresponding to their
parent-child relationships with each other -->
<!-- A "Server" is a singleton element that represents the entire JVM,
which may contain one or more "Service" instances. The Server
listens for a shutdown command on the indicated port.
Note: A "Server" is not itself a "Container", so you may not
define subcomponents such as "Valves" or "Loggers" at this level.
-->
<Server port="8005" shutdown="SHUTDOWN">
<!-- Comment these entries out to disable JMX MBeans support used for the
administration web application -->
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<!-- Global JNDI resources -->
<GlobalNamingResources>
<!-- Test entry for demonstration purposes -->
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users -->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
<Resource name="jdbc/gdn" auth="Container"
type="javax.sql.DataSource" driverClassName="sun.jdbc.odbc.JdbcOdbcDriver"
url="jdbc:odbc:gdn"
username="system" password="tiger" maxActive="20" maxIdle="10"
maxWait="-1"/>
</GlobalNamingResources>
<!-- A "Service" is a collection of one or more "Connectors" that share
a single "Container" (and therefore the web applications visible
within that Container). Normally, that Container is an "Engine",
but this is not required.
Note: A "Service" is not itself a "Container", so you may not
define subcomponents such as "Valves" or "Loggers" at this level.
-->
<!-- Define the Tomcat Stand-Alone Service -->
<Service name="Catalina">
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Each Connector passes requests on to the
associated "Container" (normally an Engine) for processing.
By default, a non-SSL HTTP/1.1 Connector is established on port 8080.
You can also enable an SSL HTTP/1.1 Connector on port 8443 by
following the instructions below and uncommenting the second Connector
entry. SSL support requires the following steps (see the SSL Config
HOWTO in the Tomcat 5 documentation bundle for more detailed
instructions):
* If your JDK version 1.3 or prior, download and install JSSE 1.0.2 or
later, and put the JAR files into "$JAVA_HOME/jre/lib/ext".
* Execute:
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA (Windows)
$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA (Unix)
with a password value of "changeit" for both the certificate and
the keystore itself.
By default, DNS lookups are enabled when a web application calls
request.getRemoteHost(). This can have an adverse impact on
performance, so you can disable it by setting the
"enableLookups" attribute to "false". When DNS lookups are disabled,
request.getRemoteHost() will return the String version of the
IP address of the remote client.
-->
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector
port="5050" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
<!-- Note : To disable connection timeouts, set connectionTimeout value
to 0 -->
<!-- Note : To use gzip compression you could set the following properties :
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml"
-->
<!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
<!--
<Connector port="8443"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
<!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
<!-- See proxy documentation for more information about using this. -->
<!--
<Connector port="8082"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" acceptCount="100" connectionTimeout="20000"
proxyPort="80" disableUploadTimeout="true" />
-->
<!-- An Engine represents the entry point (within Catalina) that processes
every request. The Engine implementation for Tomcat stand alone
analyzes the HTTP headers included with the request, and passes them
on to the appropriate Host (virtual host). -->
<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
-->
<!-- Define the top level container in our container hierarchy -->
<Engine name="Catalina" defaultHost="localhost">
<!-- The request dumper valve dumps useful debugging information about
the request headers and cookies that were received, and the response
headers and cookies that were sent, for all requests received by
this instance of Tomcat. If you care only about requests to a
particular virtual host, or a particular application, nest this
element inside the corresponding <Host> or <Context> entry instead.
For a similar mechanism that is portable to all Servlet 2.4
containers, check out the "RequestDumperFilter" Filter in the
example application (the source for this filter may be found in
"$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").
Request dumping is disabled by default. Uncomment the following
element to enable it. -->
<!--
<Valve className="org.apache.catalina.valves.RequestDumperValve"/>
-->
<!-- Because this Realm is here, an instance will be shared globally -->
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<!-- Comment out the old realm but leave here for now in case we
need to go back quickly -->
<!--
<Realm className="org.apache.catalina.realm.MemoryRealm" />
-->
<!-- Replace the above Realm with one of the following to get a Realm
stored in a database and accessed via JDBC -->
<!--
<Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="org.gjt.mm.mysql.Driver"
connectionURL="jdbc:mysql://localhost/authority"
connectionName="test" connectionPassword="test"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name" />
-->
<!--
<Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"
connectionName="scott" connectionPassword="tiger"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name" />
-->
<!--
<Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="sun.jdbc.odbc.JdbcOdbcDriver"
connectionURL="jdbc:odbc:CATALINA"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name" />
-->
<!-- Define the default virtual host
Note: XML Schema validation will not work with Xerces 2.2.
-->
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<!-- Defines a cluster for this node,
By defining this element, means that every manager will be changed.
So when running a cluster, only make sure that you have webapps in there
that need to be clustered and remove the other ones.
A cluster has the following parameters:
className = the fully qualified name of the cluster class
name = a descriptive name for your cluster, can be anything
mcastAddr = the multicast address, has to be the same for all the nodes
mcastPort = the multicast port, has to be the same for all the nodes
mcastBindAddr = bind the multicast socket to a specific address
mcastTTL = the multicast TTL if you want to limit your broadcast
mcastSoTimeout = the multicast readtimeout
mcastFrequency = the number of milliseconds in between sending a "I'm alive" heartbeat
mcastDropTime = the number a milliseconds before a node is considered "dead" if no heartbeat is received
tcpThreadCount = the number of threads to handle incoming replication requests, optimal would be the same amount of threads as nodes
tcpListenAddress = the listen address (bind address) for TCP cluster request on this host,
in case of multiple ethernet cards.
auto means that address becomes
InetAddress.getLocalHost().getHostAddress()
tcpListenPort = the tcp listen port
tcpSelectorTimeout = the timeout (ms) for the Selector.select() method in case the OS
has a wakup bug in java.nio. Set to 0 for no timeout
printToScreen = true means that managers will also print to std.out
expireSessionsOnShutdown = true means that
useDirtyFlag = true means that we only replicate a session after setAttribute,removeAttribute has been called.
false means to replicate the session after each request.
false means that replication would work for the following piece of code: (only for SimpleTcpReplicationManager)
<%
HashMap map = (HashMap)session.getAttribute("map");
map.put("key","value");
%>
replicationMode = can be either 'pooled', 'synchronous' or 'asynchronous'.
* Pooled means that the replication happens using several sockets in a synchronous way. Ie, the data gets replicated, then the request return. This is the same as the 'synchronous' setting except it uses a pool of sockets, hence it is multithreaded. This is the fastest and safest configuration. To use this, also increase the nr of tcp threads that you have dealing with replication.
* Synchronous means that the thread that executes the request, is also the
thread the replicates the data to the other nodes, and will not return until all
nodes have received the information.
* Asynchronous means that there is a specific 'sender' thread for each cluster node,
so the request thread will queue the replication request into a "smart" queue,
and then return to the client.
The "smart" queue is a queue where when a session is added to the queue, and the same session
already exists in the queue from a previous request, that session will be replaced
in the queue instead of replicating two requests. This almost never happens, unless there is a
large network delay.
-->
<!--
When configuring for clustering, you also add in a valve to catch all the requests
coming in, at the end of the request, the session may or may not be replicated.
A session is replicated if and only if all the conditions are met:
1. useDirtyFlag is true or setAttribute or removeAttribute has been called AND
2. a session exists (has been created)
3. the request is not trapped by the "filter" attribute
The filter attribute is to filter out requests that could not modify the session,
hence we don't replicate the session after the end of this request.
The filter is negative, ie, anything you put in the filter, you mean to filter out,
ie, no replication will be done on requests that match one of the filters.
The filter attribute is delimited by ;, so you can't escape out ; even if you wanted to.
filter=".*\.gif;.*\.js;" means that we will not replicate the session after requests with the URI
ending with .gif and .js are intercepted.
The deployer element can be used to deploy apps cluster wide.
Currently the deployment only deploys/undeploys to working members in the cluster
so no WARs are copied upons startup of a broken node.
The deployer watches a directory (watchDir) for WAR files when watchEnabled="true"
When a new war file is added the war gets deployed to the local instance,
and then deployed to the other instances in the cluster.
When a war file is deleted from the watchDir the war is undeployed locally
and cluster wide
-->
<!--
<Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
managerClassName="org.apache.catalina.cluster.session.DeltaManager"
expireSessionsOnShutdown="false"
useDirtyFlag="true"
notifyListenersOnReplication="true">
<Membership
className="org.apache.catalina.cluster.mcast.McastService"
mcastAddr="228.0.0.4"
mcastPort="45564"
mcastFrequency="500"
mcastDropTime="3000"/>
<Receiver
className="org.apache.catalina.cluster.tcp.ReplicationListener"
tcpListenAddress="auto"
tcpListenPort="4001"
tcpSelectorTimeout="100"
tcpThreadCount="6"/>
<Sender
className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
replicationMode="pooled"
ackTimeout="15000"/>
<Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;"/>
<Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
</Cluster>
-->
<!-- Normally, users must authenticate themselves to each web app
individually. Uncomment the following entry if you would like
a user to be authenticated the first time they encounter a
resource protected by a security constraint, and then have that
user identity maintained across all web applications contained
in this virtual host. -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all requests for this virtual host. By
default, log files are created in the "logs" directory relative to
$CATALINA_HOME. If you wish, you can specify a different
directory with the "directory" attribute. Specify either a relative
(to $CATALINA_HOME) or absolute path to the desired directory.
-->
<!--
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/>
-->
<!-- Access log processes all requests for this virtual host. By
default, log files are created in the "logs" directory relative to
$CATALINA_HOME. If you wish, you can specify a different
directory with the "directory" attribute. Specify either a relative
(to $CATALINA_HOME) or absolute path to the desired directory.
This access log implementation is optimized for maximum performance,
but is hardcoded to support only the "common" and "combined" patterns.
-->
<!--
<Valve className="org.apache.catalina.valves.FastCommonAccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/>
-->
<Context path="/tdm" docBase="tdm" debug="0" reloadable="true" />
</Host>
</Engine>
</Service>
</Server>
I have set the context path to /tdm in the server.xml file. Should this be placed in context.xml?
My first page in the project is called Homepage.html. To start my project I give http://localhost:5050/tdm/homepage.html
in a browser. Here I accept a username and password from the user and then do the validation in
a valid.jsp file, where I connect to the database and check and use jsp:forward to go to next pages
accordingly. However when I enter the username and password and click Go in the homepage, nothing is
displayed on the next page. The URL in the browser says valid.jsp but a blank screen appears.
WHY DOES IT HAPPEN SO? DOES IT MEAN THAT TOMCAT IS NOT RECOGNIZING JAVA IN MY SYSTEM OR IS IT A PROBLEM
WITH THE DATABASE CONNECTION OR SOMETHING ELSE? I FEEL THAT TOMCAT IS NOT EXECUTING JSP COMMANDS?
IS IT POSSIBLE?WHY WILL THIS HAPPEN?
I set the JAVA_HOME and CATALINA_HOME environment to the jdk and tomcat folders resp.
Is there any other thing that I need to set in classpath? Should I have my project as a
WAR file in the webapps of TOMCAT or just a folder i.e. directory structure will fine? -
Issues with changing connection at run-time
Post Author: dmazourick
CA Forum: Data Connectivity and SQL
Weu2019ve tried a lot of different ways to resolve this issue, but are getting every time the different result.
Probably someone deal with that issue before and know how to correctly resolve it.
Weu2019re using Crystal Reports Runtime Components X+ (X, XI, XI R2) u2013 all of them has this issue.
We need client application to connect to multiple data sources u2013 user chooses report, chooses data source and we show the report for specified data source.
The data sources are tables or stored procedures stored in different databases on different servers.
For sure, every data source for a single report has the same structure, but that doesnu2019t matter.
The issue is: when the name of the database on one server is the same as the name of database on second server, the connection caching occurs.
How we can check that:
1. Weu2019re running report for Server1:<DBN> - report shows data from Server1.
2. Weu2019re opening second report for Server2:<DBN> - report shows data from Server1.
3. Weu2019re closing application and run 1-2 in opposite order, now both reports show data from Server2.
Weu2019ve tried different approaches u2013 below is a code sample that opens the report for specific connection.
Juts to be sure that no one will ask u2013 u201CAre you sure youu2019re passing the correct connection info etc.u201D. Yes! We are sure because weu2019re trying to fix this issue for a long time and tried a lot of different approaches and still cannot find the right solution.
The code looks like below. This is VB6 code, but also the same situation was tried on VC++ 6.0
Weu2019re not looking into CR.NET solution for now.
=================================================
Sub DisplayReport(Server as String, DB as String, UID as String, PWD as String, viewer as Object)
Dim app As New CRAXDRT.Application
Dim report As CRAXDRT.report
Dim database As CRAXDRT.database
Dim table As CRAXDRT.DatabaseTable
Dim par As CRAXDRT.ParameterFieldDefinition
Set report = app.OpenReport("D:\TestReport_X.rpt")
report.database.LogOnServer "pdssql.dll", Server, DB, UID, PWD
Set table = report.database.Tables(1)
table.SetLogOnInfo Server, DB, UID, PWD
table.Location = table.Name
report.database.Verify
viewer.ReportSource = report
viewer.ViewReport
end sub
=================================================
The result of above code is the following:
1. If we will pass the same viewer and will use different Server u2013 the report will be displayed correctly
2. If we will pass different viewers and will use different Server u2013 the reports will contain same data
The result of above code also depends from the version of Crystal Reports the report was designed in:
1. For Report designed in 8.5 u2013 passing of the same viewer with same connection info second time will refresh report
2. For Report designed in X, XI, XI R2 u2013 no refresh
Also, a slight modification of the above code helps for reports designed in XI to work properly, but not for reports designed in X and 8.5:
1. Before calling LogonServer, make the following: DB = DB & u201C;u201D & Int(rnd()*32767)
That makes report designed in XI to display properly in different viewers, but doesnu2019t have any impact to X and no any impact to 8.5
Weu2019re really looking for any help in this questionPost Author: fburch
CA Forum: Data Connectivity and SQL
I am having similar problems and some successes.
I have 70+ reports and now suddenly I want to point them at two different servers, but at databases with the same name like you talked about.
I first just tried the following:
#1. Load report:
Dim myReport As New ReportDocument
myReport.Load(filename)
#2. Pass in parameter values
''Get the collection of parameters from the report
Dim crParameterFieldDefinitions As ParameterFieldDefinitions = r.DataDefinition.ParameterFields
''Access the specified parameter from the collection
Dim crParameter1 As ParameterFieldDefinition = crParameterFieldDefinitions.Item(ParamName)
''Get the current values from the parameter field. At this point
''there are zero values set.
'crParameter1Values = crParameter1.CurrentValues
''Set the current values for the parameter field
Dim crDiscrete1Value As New ParameterDiscreteValue
If crParameter1.ValueType = FieldValueType.DateField Or crParameter1.ValueType = FieldValueType.DateTimeField Then
If ParamValue Is System.DBNull.Value Then
crDiscrete1Value.Value = CDate("1/1/1900")
ElseIf ParamValue Is Nothing Then
crDiscrete1Value.Value = CDate("1/1/1900")
Else
crDiscrete1Value.Value = ParamValue
End If
ElseIf crParameter1.ValueType = FieldValueType.StringField Then
If ParamValue Is Nothing Then
crDiscrete1Value.Value = ""
Else
crDiscrete1Value.Value = ParamValue
End If
ElseIf crParameter1.ValueType = FieldValueType.BooleanField Then
If ParamValue Is Nothing Then
crDiscrete1Value.Value = False
ElseIf ParamValue.ToString.ToUpper = "TRUE" Then
crDiscrete1Value.Value = True
Else
crDiscrete1Value.Value = False
End If
ElseIf crParameter1.ValueType = FieldValueType.NumberField Then
If ParamValue Is Nothing Then
crDiscrete1Value.Value = 0
Else
crDiscrete1Value.Value = ParamValue
End If
Else
If ParamValue Is System.DBNull.Value Then
crDiscrete1Value.Value = Nothing
ElseIf ParamValue Is Nothing Then
crDiscrete1Value.Value = Nothing
Else
crDiscrete1Value.Value = ParamValue
End If
End If
''Add the first current value for the parameter field
Dim crParameter1Values As New ParameterValues
crParameter1Values.Add(crDiscrete1Value)
''All current parameter values must be applied for the parameter field.
crParameter1.ApplyCurrentValues(crParameter1Values)
#3 Set "Table Log in info" (most of my reports using stored procedures, but I guess I still needed this step).
Dim CrTables As Tables = r.Database.Tables
Dim CrTable As Table
Dim crtableLogoninfos As New TableLogOnInfos()
Dim crtableLogoninfo As New TableLogOnInfo()
With crConnectionInfo
.ServerName = connectionParser.GetServerName(connectionString)
.DatabaseName = connectionParser.GetDatabaseName(connectionString)
If connectionParser.DoesUseIntegratedSecurity(connectionString) = True Then
.IntegratedSecurity = True
Else
.UserID = connectionParser.GetServerUserName(connectionString)
.Password = connectionParser.GetServerPassword(connectionString)
.IntegratedSecurity = False
End If
End With
For Each CrTable In CrTables
crtableLogoninfo = CrTable.LogOnInfo
crtableLogoninfo.ConnectionInfo = crConnectionInfo
CrTable.ApplyLogOnInfo(crtableLogoninfo)
If InStr(CrTable.Location, ".dbo.") = 0 Then
CrTable.Location = crConnectionInfo.DatabaseName + ".dbo." + CrTable.Location
End If
Next
If r.Subreports.Count > 0 Then
Dim crSections As Sections
Dim crSection As Section
Dim crReportObjects As ReportObjects
Dim crReportObject As ReportObject
Dim crSubreportObject As SubreportObject
Dim crDatabase As Database
Dim subRepDoc As New ReportDocument()
'SUBREPORTS
'Set the sections collection with report sections
crSections = r.ReportDefinition.Sections
'Loop through each section and find all the report objects
'Loop through all the report objects to find all subreport objects, then set the
'logoninfo to the subreport
For Each crSection In crSections
crReportObjects = crSection.ReportObjects
For Each crReportObject In crReportObjects
If crReportObject.Kind = ReportObjectKind.SubreportObject Then
'If you find a subreport, typecast the reportobject to a subreport object
crSubreportObject = CType(crReportObject, SubreportObject)
'Open the subreport
subRepDoc = crSubreportObject.OpenSubreport(crSubreportObject.SubreportName)
crDatabase = subRepDoc.Database
CrTables = crDatabase.Tables
'Loop through each table and set the connection info
'Pass the connection info to the logoninfo object then apply the
'logoninfo to the subreport
For Each CrTable In CrTables
crtableLogoninfo = CrTable.LogOnInfo
crtableLogoninfo.ConnectionInfo = crConnectionInfo
CrTable.ApplyLogOnInfo(crtableLogoninfo)
If InStr(CrTable.Location, ".dbo.") = 0 Then
CrTable.Location = crConnectionInfo.DatabaseName + ".dbo." + CrTable.Location
End If
Next
End If
Next
Next
#4 go get the data
crv.ReportSource = myReport
crv.Refresh()
#5 Call export to disk function.
This was not changing server - did not realize it was a caching problem as you suggested. That makes sense. So anyway, then of course I threw a verify database statement on there, before I get the data. Now looks like this:
#1 Load Report
#2. Pass in parameter values (dummy values that will generate schema of table without having to actually run long running procedures, i.e. select (cast 1 as int) as somefield1, cast(2.0 as numeric(10,0)) as somefield2
#3 Set "Table Log in info"
#3b Verify the database which seems to be a necessity:
myReport.VerifyDatabase()
#3c Re-populate the report with real parameter values, same as #2 but this time with the ones that will generate the real data
#4 go get the data
#5 Call export to disk function.
This does work, some of the time. When the datasource underlying report are tables, it works. I made a dummy crystal report with lots of different types of params (stored procedure underlying database) - this also worked!
Unfortunately, when I run this against the majority of my reports, I get this stupid "invalid mapping type value", for which I have not been able to resolve yet.
I also tried putting a myreport.SetDatabaseLogon("","") -- what would this do, clear it out? (saw this referenced somewhere).
Then I tried putting the real connection info in there as well ...
myReport.SetDatabaseLogon(uid, pwd, serverName, DBname)
I put this setdatabase thing before I called verifydatabase, which is where the process is bombing out and giving me invalid mapping type for the reports that do not run.
At this point I am still working on solution. I have tried creating dummy report that used same parameter types as a report that was failing and voila - the dummy report worked. Anyway, let me know if you get your problem fixed and I will do the same. Looks like you are using a different method that I didn't notice "LogOnServer" -
Problem with Data Model and Analysis View
I create an analyze in BI Publisher and then i create a data model using this object.
When i try to generate an XML with a number of rows the BI Publisher return an empty XML (Only with de DATA_DS tags but no data). To bypass this problem i make and XML file by hand and this allow me to create reports and design it but when i try to view the reports i got the message that says "No Data Found".
So i was check the analysis and all looks appears to be fine, In the results tab it show me a complete table with the data i was looking to use.
So i try to repeat the error and when i try to create the XML for the Data Model i found this two error in the logs:
[root@server ~]# [2013-07-17T16:37:22.844-04:00] [bi_server1] [WARNING] [] [oracle.xdo] [tid: 2361] [userId: <anonymous>] [ecid: ad7bb40a72b553c0:-3e5f91c5:13ecd037992:-8000-00000000000e2b34,0] [APP: bipublisher#11.1.1] Incomplete xslt._XDONFSEPARATORS: decimal separator: null, grouping separator: null
[2013-07-17T16:37:26.828-04:00] [bi_server1] [WARNING] [] [oracle.xdo] [tid: 2361] [userId: <anonymous>] [ecid: ad7bb40a72b553c0:-3e5f91c5:13ecd037992:-8000-00000000000e2b3a,0] [APP: bipublisher#11.1.1] Incomplete xslt._XDONFSEPARATORS: decimal separator: null, grouping separator: null
[2013-07-17T16:37:26.865-04:00] [bi_server1] [WARNING] [] [oracle.xdo] [tid: 2361] [userId: <anonymous>] [ecid: ad7bb40a72b553c0:-3e5f91c5:13ecd037992:-8000-00000000000e2b3a,0] [APP: bipublisher#11.1.1] oracle.xdo.servlet.CreateException: Path: /FOLDER/MODEL.xdm is not pointing to a report. Actual type: ReportItem, sub-type: DataModel[[
at oracle.xdo.servlet.ReportException.fillInStackTrace(ReportException.java:124)
at java.lang.Throwable.<init>(Throwable.java:196)
at java.lang.Exception.<init>(Exception.java:41)
at oracle.xdo.servlet.ReportException.<init>(ReportException.java:36)
at oracle.xdo.servlet.CreateException.<init>(CreateException.java:18)
at oracle.xdo.servlet.ReportRepository.getReport(ReportRepository.java:104)
at oracle.xdo.servlet.ReportRepository.getReport(ReportRepository.java:128)
at oracle.xdo.servlet.dataengine.DataProcessorFactory.getDataModelPath(DataProcessorFactory.java:207)
at oracle.xdo.servlet.dataengine.DataProcessorFactory.isSemanticLayerDataModel(DataProcessorFactory.java:99)
at oracle.xdo.servlet.dataengine.DataProcessorFactory.isSemanticLayerDataModel(DataProcessorFactory.java:78)
at oracle.xdo.servlet.ReportModelContextImpl.getReportXMLData(ReportModelContextImpl.java:157)
at oracle.xdo.servlet.CoreProcessor.process(CoreProcessor.java:346)
at oracle.xdo.servlet.CoreProcessor.generateDocument(CoreProcessor.java:101)
at oracle.xdo.servlet.ReportImpl.renderBodyHTTP(ReportImpl.java:1074)
at oracle.xdo.servlet.ReportImpl.renderReportBodyHTTP(ReportImpl.java:639)
at oracle.xdo.servlet.XDOServlet.writeReport(XDOServlet.java:492)
at oracle.xdo.servlet.XDOServlet.writeReport(XDOServlet.java:462)
at oracle.xdo.servlet.XDOServlet.doGet(XDOServlet.java:280)
at oracle.xdo.servlet.XDOServlet.doPost(XDOServlet.java:313)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.xdo.servlet.metadata.track.MostRecentFilter.doFilter(MostRecentFilter.java:64)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.xdo.servlet.security.SecurityFilter.doFilter(SecurityFilter.java:125)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.xdo.servlet.init.InitCheckingFilter.doFilter(InitCheckingFilter.java:63)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
And when i try to view the report that use the analysis i got this two warning in the logs:
[2013-07-17T16:58:01.615-04:00] [bi_server1] [WARNING] [] [oracle.xdo] [tid: 57] [userId: <anonymous>] [ecid: ad7bb40a72b553c0:-3e5f91c5:13ecd037992:-8000-00000000000e2d7c,0] [APP: bipublisher#11.1.1] Incomplete xslt._XDONFSEPARATORS: decimal separator: null, grouping separator: null
[2013-07-17T16:58:02.034-04:00] [bi_server1] [WARNING] [] [oracle.xdo] [tid: 57] [userId: <anonymous>] [ecid: ad7bb40a72b553c0:-3e5f91c5:13ecd037992:-8000-00000000000e2d84,0] [APP: bipublisher#11.1.1] Incomplete xslt._XDONFSEPARATORS: decimal separator: null, grouping separator: null
As i understand there is has a reference to a null value but i cant find what column of the analysis has the problem.
Any ideas about how to solve or debug this?
ThanksI follow your instructions and it works fine. I can create the XML and the reports can show data.
So, i already know that there is no problem with the data and with the BI Publisher installation but i still doesn know what is the problem with the analysis view that fails.
Any idea how to debug it?
Thanks. -
Problems with iTunes syncing iPhotos on Time Capsule after Mavericks update?
Hello all,
I currently have all my Music/Movies/TV Shows/Photos stored on my Time Capsule and have been using iTunes and iPhoto to retreive files from it with no problems until I recently upgraded to Mavericks.
Couple of days ago, I updated to Mavericks, downloaded the latest version of iPhoto and iTunes. Yet once I've done so I could no longer sync photos to my iPhone, iPad or even see my photos on my Apple TV. I could however see the Music other Media. It took iTunes abnormally longer time to retrieve the data from the network and once it did and tried to sync them with the phone it just hung and crashed.
I tried doing the following:
Deleting the iPod, Apple TV cache from the iPhoto library.
Fixed iPhoto Permissions and rebuilt the whole of the iPhoto library.
Deleted my iTunes library and rebuilt it from scratch.
All that did not work. The only thing that did however, was taking the photos from the Time Capsule and back to my computer. That seemed to fix things and I was able to make everything work again.
What I am asking is: Is anyone else having the same problem? Is this an OS bug that will be addressed? or is there anyway I could fix this on my own? I only own a Macbook Air and the 15GB of photos I have already take a huge chunk out of the 59GB I have available on my laptop. Thanks.I have a new Time Capsule (the tall version), but no Mavericks yet (I have OSX 10.8.5) and latest iTunes and Time Capsule sw. I have pictures and iTunes library on the Time Capsule.
iTunes messes a lot with synching pictures and music.
I have tried to delete the picture cache on the Capsule, but that only helped once. Next time it looked over the pictures for a long time, but synched none. With music I get an error message that it's wrong format (it isn't, the file is fine, I can see it) - and since next time that song will/might come in, but some next song won't. Then it could gray out some music on iPad (running iOS 6.1.3), some times it actually plays grayed out music, some times it doesn't.
But on my Mac Mini (which runs iTunes, all year long), all is fine, so the music exists fine! Synching looks very broken to me! This happened when my wide Time Capule's disk broke and I had to recover the iTunes library from a backup.
I'd rather not move all of this onto the MacBook, as I want anyone to be able to synch and play music wouthot having to relate to some laptop.
Øyvind Teig, Trondheim, Norway
www.teigfam.net/oyvind/home -
Problem with currency translation and variable time ref. with 0FISCPER
Hello,
We have a problem with a currency conversion with a variable time reference (as iobject we use 0fiscper)
We created a currency conversion for several key fig:
Our settings:
Exchange rate Type: EURX
dynamic ex rate determination
Source cur from datarecord
Fixed Target Curr (EUR)
Variable time ref.: End of Period
Special Infoobject: 0fiscper
When we run the DTP we get the following error:
<i>Enter rate GBP / EUR rate type EURX for 00.00.0000 in the system settings.</i>
ending the DTP in a message type X.
In table TCURR and T009/T009B all necessary information is available.
After debugging the function module, it looks like the created date (created from the FISCPER) is set to 00.00.0000. This results in the error above.
Does anybody have experience with this error and more important know how to solve it?
We also have a 0FISCYEAR available but in the TCURR table al rates are defined per end of the month. When trying to use 0FISCYEAR as InfoObject in the variable time reference, a diffrent error occurs: Enter rate GBP / EUR rate type EURX for 01.01.1001 in the system settings. While the 0FISCPER is 2001001.
Is there a bug in the function module? (couldn't find a SAP note)
We are working with BI 7.0 and SP12
Best regards
StevenPlease can you give more detail on how you were able to resolve this issue? How did you add 0fiscper to the transformation? I am on BW 3.5, how do I fix this same issue on it? Please help, this is urgent.
-
Problems with Blog Comments after running Google Analytics Automator
I upgraded to IWeb 09 today and was hoping that there would be not too many compatibility issues. Well, here is one.
I noticed that the comment function on my blog page kept disappearing after I published the website to MobileMe. After some hours of trial and error I found out that the comment function is there right after publishing but disappears straight after running the Google Analytics Automator on the Idisk website folder.
I don't think I had this problem with IWeb 08 (I only used it briefly), so that might be a compatibility issue with IWeb 09.
Anybody else had this problem? Any suggestions?After some hours of trial and error I found out that the comment function is there right after publishing but disappears straight after running the Google Analytics Automator on the Idisk website folder.
this is a known problem since from iweb1, any time you post edit your pages (with google analytics automator or what not) you potentially cripple MMe server side functions.
search iweb1 and iweb2 forum for more details. -
Mayor Problems with new installation / restoring from time machine
I encountered several problems while setting up my mac mini, 1,66 Ghz, 60 GB from the start. The following problems occured:
1.) Installing 10.6 upon existing 10.6.4 caused scanner driver to fail. I was unable to reinstall it, so i decided to reinstall 10.6. from the start
2.) clean install of 10.6., after finishing i could not install iWorks. There was an error like "com.apple.installer.pagecontroller" ant installation terminated. With MS Office 2004 I had a problem, too: An error with _ds.store occured, I could not even copy the files to my harddisk. I thought, it might be the optical drive, so i took an external one which caused the same problems. I proceeded to 10.6.4 by update, but that did not make it better.
3.) next clean install (two tries wirth different backups) by my backup from time machine. It worked until it rebootet. I ended in a blue screen with every now and then the rotating cirlce, but could not proceed any further.
4.) tried to repair rights hat no effect. The harddisk is reportet to be functional.
5.) Back to the roots, i thought, installing 10.4. which came on the grey disks with the mini. I encountered the same problems after installing, furthermore, on trying to install flash 10.1 it could not open the .dmg-file.
6.) Installed Win XP. All seems funktional.
So, please, can anyone tell me, what is wrong with my mac mini? to me, it seems to be a problem with hardware, but i cannot verivy this. Please help me.MathiasLeopold wrote:
3.) next clean install (two tries wirth different backups) by my backup from time machine. It worked until it rebootet. I ended in a blue screen with every now and then the rotating cirlce, but could not proceed any further.
Did you use a Leopard Install disc to restore a Snow Leopard backup? If so, that's the problem. You must use a Snow Leopard Install disc to restore a Snow Leopard backup.
If you did use the right disc, were you restoring backups from the same Mac?
If so, were you having problems before all this started? If you were, it's possible those problems corrupted your installation of OSX, and that was copied to the backups.
So, please, can anyone tell me, what is wrong with my mac mini? to me, it seems to be a problem with hardware, but i cannot verivy this. Please help me.
Try running this: Intel-based Macs: Using Apple Hardware Test
Maybe you are looking for
-
Tranferring data from external hard drive to Windows 7
I just from Win Vista to Win 7 32 bit. I backed up my entire computer on an external hard drive. How do I get all my apps and itunes stuff back onto itunes so I can sync my iPhone 4?
-
Summation button missing in abap query ..
Hi, How to activate summation button in Abap query.. Problem is ,we had instaled some service packs in our production system.. After this we found that ,when we run one of our Abap query (with transaction code) in output summation button is not ther
-
Graphical glitch during the login process on Lion
Hi there, After entering my password at the login screen, it fades to blue for about two seconds, then shows the login screen again for a brief second before transitioning to my desktop. I thought this was normal until seeing how Lion launches on oth
-
Soap - Xi - Bapi (different)
I am having a problem with my scenario -- in which some parameters are passed to xi through webservice reuest, and BAPI have to called ,given some input parameter( that XI recieved from webservice),BAPI now the returned result ,these value r sent bac
-
Portal Server - SAM Authentication
Hi All, I installed Portal Sevrer 7 with SRA . After installation when I access the portal server desktop http://host.domain/portal/dt , it threw authentication page from SAM...This is the expected funtionlaity. After that I cutomized something in SA