Ejb/ql and named parameter in like
Hello,
With toplink/jpa, I have this:
"SELECT o FROM EtdSignaletique o WHERE o.name LIKE :name"
For the "name" parameter, I have to pass "Lennon%" (this column in our enterprise db seems to be space-padded; I don't have any control on that).
I think it would be better to have the "%" directly in the query, how could I do this?
This is not possible with parameter binding, which is on by default. The bound valu must have the wildcard in it.
I had no success adding the wildcard into a JPQL statement without binding since it is considered part of the parameter name and is then reported as an illegal parameter name.
I believe this one is up to your application code.
Doug
Similar Messages
-
Why named parameter can't be used multiple times in PL/SQL block in JDBC
with the following PL/SQL block, when I run int in JDBC, I get an error,
it says, The number of parameter names does not match the number of registered parameters.
if all named parameters are used only once, then my program works fine.
My old program uses Oracle Forms to run the attached PL/SQL block correctly, I just want to run them in JDBC without more efforts, I don't want to rewrite all PL/SQL blocks.
Does oracle driver support this case? why the PL/SQL block can work in Oracle Forms but failed in JDBC?
Can we have an another solutions to avoid rewriting the PL/SQL block to stored procedure?
if I use following SQL:
BEGIN if :q is null then :q := 'X'; else :q := 'Y'; end if; END;
, Using java program:
import java.sql.*; public class RunPLSQLBlock { public static void main(String s[]) throws SQLException { String URL = "jdbc:oracle:thin:@192.168.11.199:1521:TIBSTEST"; Connection con = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); con = (Connection) DriverManager.getConnection(URL, "FBP1DEV", "FBP1DEV"); String SQL = "BEGIN if :q is null then :q := 'X'; else :q := 'Y'; end if; END;"; CallableStatement stmt = con.prepareCall(SQL); stmt.registerOutParameter("q", Types.VARCHAR); stmt.setString("q", "A"); stmt.execute(); } catch (Exception e) { e.printStackTrace(); } finally { if (con != null) { con.close(); } } } }
in the coding, only "q" registered, I got:
java.sql.SQLException: The number of parameter names does not match the number of registered praremeters at oracle.jdbc.driver.OracleSql.setNamedParameters(OracleSql.java:314) at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:10096) at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:5693) at RunPLSQLBlock.main(RunPLSQLBlock.java:28)
now, tried to register 3 indexes, changed fragments are below.
import java.sql.*; public class RunPLSQLBlock { public static void main(String s[]) throws SQLException { String URL = "jdbc:oracle:thin:@192.168.11.199:1521:TIBSTEST"; Connection con = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); con = (Connection) DriverManager.getConnection(URL, "FBP1DEV", "FBP1DEV"); String SQL = "BEGIN if :q is null then :q := 'X'; else :q := 'Y'; end if; END;"; CallableStatement stmt = con.prepareCall(SQL); stmt.registerOutParameter(1, Types.VARCHAR); stmt.registerOutParameter(2, Types.VARCHAR); stmt.registerOutParameter(3, Types.VARCHAR); stmt.setString(1, "A"); stmt.execute(); } catch (Exception e) { e.printStackTrace(); } finally { if (con != null) { con.close(); } } } }
now error changed to:
java.sql.SQLException: ORA-01006: bind variable does not exist at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:457) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:400) at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:926) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:476) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:200) at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:543) at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:208) at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:1416) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1757) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:4372) at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:4595) at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:10100) at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:5693) at RunPLSQLBlock.main(RunPLSQLBlock.java:26)
, now tried register only 1 position like below,
CallableStatement stmt = con.prepareCall(SQL); stmt.registerOutParameter(1, Types.VARCHAR); stmt.setString(1, "A"); stmt.execute();
, it says:
java.sql.SQLException: Missing IN or OUT parameter at index:: 2 at oracle.jdbc.driver.OraclePreparedStatement.processCompletedBindRow(OraclePreparedStatement.java:2177) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:4356) at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:4595) at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:10100) at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:5693) at RunPLSQLBlock.main(RunPLSQLBlock.java:26)
, now let try a OK case, which use all named parameters only once. coding like below, SQL and Java listed below.
BEGIN if :q is null then :r := 'X'; else :s := 'Y'; end if; EXCEPTION WHEN NO_DATA_FOUND THEN NULL; END;
import java.sql.*; public class RunPLSQLBlock { public static void main(String s[]) throws SQLException { String URL = "jdbc:oracle:thin:@192.168.11.199:1521:TIBSTEST"; Connection con = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); con = (Connection) DriverManager.getConnection(URL, "FBP1DEV", "FBP1DEV"); String SQL = "BEGIN if :q is null then :r := 'X'; else :s := 'Y'; end if; END;"; CallableStatement stmt = con.prepareCall(SQL); stmt.registerOutParameter("q", Types.VARCHAR); stmt.registerOutParameter("r", Types.VARCHAR); stmt.registerOutParameter("s", Types.VARCHAR); stmt.setString("q", "A"); stmt.execute(); System.out.println("Q :" + stmt.getString("q")); System.out.println("R :" + stmt.getString("r")); System.out.println("S :" + stmt.getString("s")); } catch (Exception e) { e.printStackTrace(); } finally { if (con != null) { con.close(); } } } }
, the case give us the following output:
Q :A R :null S :Y
2nd part, I also tried another scheme, to use 'execute immediate', test code attached below, it also have errors.
begin execute immediate 'begin if :q is null then :q := ''X''; else :q := ''Y''; :r := ''Z''; end if; end;' using in out :q, out :r; end;
, Java Code:
import java.sql.*; public class RunDynamicSQL { public static void main(String s[]) throws SQLException { String URL = "jdbc:oracle:thin:@192.168.11.199:1521:TIBSTEST"; Connection con = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); con = (Connection) DriverManager.getConnection(URL, "FBP1DEV", "FBP1DEV"); String SQL ="begin execute immediate 'begin if :q is null then :q := ''X''; else :q := ''Y''; :r := ''Z''; end if; end;' using in out :q, out :r; end;"; CallableStatement stmt = con.prepareCall(SQL); stmt.registerOutParameter("q", Types.VARCHAR); stmt.registerOutParameter("r", Types.VARCHAR); stmt.setString("q", "A"); stmt.execute(); System.out.println("Q :" + stmt.getString("q")); System.out.println("R :" + stmt.getString("r")); } catch (Exception e) { e.printStackTrace(); } finally { if (con != null) { con.close(); } } } }
, the output is, we can find when parameter 'q' is IN OUT mode, we can't get its final value:
Q :null R :Z
, now I tried my workaround, it works fine by using a temporary variable, now my named parameter is split to 2 roles, one is for IN, another is for OUT, now I can get final out value.
declare q clob; r clob; begin q := ?; r := ?; execute immediate 'begin if :q is null then :q := ''X''; else :q := ''Y''; :r := ''Z''; end if; end;' using in out q, out r; ? := q; ? := r; end;
, my test java code,
import java.sql.*; public class RunDynamicSQL { public static void main(String s[]) throws SQLException { String URL = "jdbc:oracle:thin:@192.168.11.199:1521:TIBSTEST"; Connection con = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); con = (Connection) DriverManager.getConnection(URL, "FBP1DEV", "FBP1DEV"); String SQL ="declare q clob;r clob; begin q := ?; r := ?; execute immediate 'begin if :q is null then :q := ''X''; else :q := ''Y''; :r := ''Z''; end if; end;' using in out q, out r; ? := q; ? := r; end;"; CallableStatement stmt = con.prepareCall(SQL); stmt.registerOutParameter(3, Types.VARCHAR); stmt.registerOutParameter(4, Types.VARCHAR); stmt.setString(1, "A"); stmt.setString(2, "A"); stmt.execute(); System.out.println("Q :" + stmt.getString(3)); System.out.println("R :" + stmt.getString(4)); } catch (Exception e) { e.printStackTrace(); } finally { if (con != null) { con.close(); } } } }
, the output is expected,
Q :Y R :Z
Database:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
JDBC Driver, extracted from ojdbc6_g.jar/META-INF/MANIFEST.MF :
Created-By: 1.5.0_30-b03 (Sun Microsystems Inc.)
Implementation-Vendor: Oracle Corporation
Implementation-Title: JDBC debug
Implementation-Version: 11.2.0.3.0
Repository-Id: JAVAVM_11.2.0.3.0_LINUX_110823
Specification-Vendor: Sun Microsystems Inc.
Specification-Title: JDBC
Specification-Version: 4.0
Main-Class: oracle.jdbc.OracleDriver
JDK:
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) Client VM (build 21.0-b17, mixed mode, sharing)
Edited by: jamxval on 2013-3-22 2:01PM (UTC+08:00), Give full test java program and SQL, added environment/API level; Attached another problem.
Edited by: jamxval on 2013-3-26 17:57 (UTC +08), Adjust code styleHi, thanks for your response, now I see, the named parameter is for stored procedure only, for PL/SQL block we name it placeholder name.
After cast my java.sql.CallableStatement to oracle.jdbc.OracleCallableStatement, I can find setStringAtName,
now, I have only one question:I can't find corresponding methods for registerOutputParameter, how we fetch output value?
I tried to callableStatement.getString("q"); it reports errors, but there are no ordinal binding in my source code, does placeholder names doesn't support OUT mode?
Java:
CallableStatement stmt = con.prepareCall("BEGIN if :q is null then :r := 'X'; else :s := 'Y'; end if; END;");
oracle.jdbc.OracleCallableStatement call = (oracle.jdbc.OracleCallableStatement) stmt;
call.registerOutParameter("q", Types.VARCHAR);
call.registerOutParameter("r", Types.VARCHAR);
call.registerOutParameter("s", Types.VARCHAR);
call.setStringAtName("q", "A");
call.setStringAtName("r", "A");
call.setStringAtName("s", "A");
call.execute();
System.out.println("Q :" + call.getString("q"));
</Java>
<output>
java.sql.SQLException: 不允许的操作: Ordinal binding and Named binding cannot be combined!
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.OracleCallableStatement.getString(OracleCallableStatement.java:2834)
at RunPLSQLBlock.main(RunPLSQLBlock.java:33)
</output>by the way, in my below-mentioned SQL 'problematic', when my code uses 'execute immediate' and use placeholder names in IN OUT mode, we always get NULL value (i.e. ':q'), but we can get final value of ':r' when ':r' is OUT mode only; now I get a workaround attached in below-mentioned 'my workaround' block, which split the IN OUT roles to 2 parts, it can work now;
It seems that the difference between 'problematic' and 'my workaround' imply that there are something work unexpectedly when the driver process the placeholder names, because 'my workaround' and ':r in problematic case' make sure the 'execute immediate' returned output values correctly, unluckly driver layer can't get return values.
<SQL name = 'problematic'>
begin
execute immediate 'begin if :q is null then :q := ''X''; else :q := ''Y''; :r := ''Z''; end if; end;'
using in out :q, out :r;
end;
</SQL>
<SQL name='my workaround'>
declare
q clob;
r clob;
begin
q := ?;
r := ?;
execute immediate 'begin if :q is null then :q := ''X''; else :q := ''Y''; :r := ''Z''; end if; end;' using in out q, out r;
? := q;
? := r;
end;Edited by: EJP on 26/03/2013 14:14 -
Hi all,
this is my first post in this forum.
I have a question:
Is there a way in ejb-ql to make a query like this?
SELECT a FROM Test a ORDER BY :field
and then pass the parameter "field"?
I need this because i want to implement pagination in my swing jtables.
But when i need to sort data the only way that i've found is re-query with another order by param.
If you want to suggest me another way to accomplish this, let me know!
Very thanks, Eros.
P.S.: I'm using Netbeans with Oracle Toplink Essentials
Edited by: user6103941 on 13-ott-2008 15.16It is not possible to pass in a field name as a parameter. As an alternative you could specify the ordering using our native query/expression API.
The following example was written using EclipseLink JPA:
Query query = em.createQuery("SELECT e FROM Employee e");
JpaHelper.getReadAllQuery(query).addAscendingOrdering("firstName");
query.getResultList();This approach is basically casting down to the wrapped native query and populating the order-by directly.
Doug -
Multiple standby database about FAL_SERVER and FAL_CLIENT parameter in DG
Hi,
I am little bit confused about FAL_SERVER and FAL_CLIENT parameter in Data Guard.
We are planning to configure multiple standby database in Data Guard environment. Let Assume that, i have production db named as 'PROD' and multiple standby name like standby1,standby2, standby3.
My Environment is:_
DB Version: 11.2.0.1
OS Version: OE5LU6
So in this case how to specify above Net service name in spfile on production server and also on other standby server.
Kindly Suggests me.
Regards
AthishAthish wrote:
Hi,
I am little bit confused about FAL_SERVER and FAL_CLIENT parameter in Data Guard.
We are planning to configure multiple standby database in Data Guard environment. Let Assume that, i have production db named as 'PROD' and multiple standby name like standby1,standby2, standby3.
My Environment is:_
DB Version: 11.2.0.1
OS Version: OE5LU6
So in this case how to specify above Net service name in spfile on production server and also on other standby server.
Kindly Suggests me.
Regards
AthishFAL_CLIENT is Oracle TNS service of the local system and FAL_SERVER is Oracle TNS service of remote system.
if you have three standby databases of primary , then from primary you must have three values in FAL_SERVER so that archives will be send to the all destinations.
and From the stadnby database, FAL_SERVER should be the oracle TNS service where you receiving the archive log files,
Note:- If you have RAC primary then mention each service differentiated by commas as shown example below.
From standby to Primary RAC:- FAL_SAERVER='PROD1','PROD2'
These parameters are dynamic, so that you can alter them at any time.
HTH. -
WebLogic 11g EAR EJB Classpath and class loaders
All,
I have been having issues migrating Spring based EJB applications from OC4J to WebLogic 11g (10.3.1). I have been in communication with Oracle who has suggested a work around however I am keen to see if anyone else can suggest a solution.
The application is dependant on stateless session EJB beans that communicate with a Spring managed service tier to perform the business logic and database access. PitchFork is used to inject the Spring managers into the EJB’s using the spring-ejb-jar.xml configuration file. Note originally I was using the SpringBeanAutowiringInterceptor however I could not get this to work. See WebLogic 11g and Spring beens injected into EJB for details.
When the application is deployed packaging all the dependant jars within the APP-INF\lib folder I get a verity of errors from the following InvalidClassException, NoSuchMethodError, AbstractMethodError and IllegalArgumentException. I am using Spring 2.5.3 to match the supported WebLogic version. Note within the EAR application.xml the library-directory is set to APP-INF/lib. The issue appears to be Spring, PitchFork, commons-logging and aspectj libraries are being loaded form WebLogic and do not have visibility on jars within the application or have been modified when bundled for WebLogic. An example of this is the PitchFork jar within WebLogic has been changed excluding the spi package resulting in java.lang.ClassNotFoundException: org.springframework.jee.spi.PitchforkUtilsImpl errors.
Moving the jars to the domain library path does not resolve any of the issues. I have been unable to successfully deploy the application picking up the application jars using the prefer-application-packages configuration.
Oracle has advised me to deploy the libraries into the WebLogic system classpath by modifying the startWebLogic command to load the libraries into the classpath. I am concerned that modifying the system classpath will result in an unstable WebLogic server as I will be replacing modified jar files packages with WebLogic (such as PitchFork). This will also limit the applications that can be deployed within the server as each application must use the same libraries and versions (as the application ibraries are leing ignored).
Has anyone else hit this issue and corrected it? Can anyone think of an alternative solution?
Regards
NeilHi,
I am in the process of updating the tracking bug# 331569 with copies of the eclipse EAR/WAR projects and the EAR for these scenarios. Here are some details on how I got past the 2nd CCE on the org.eclipse.persistence.jpa.PersistenceProvider class (not the javax one)
https://bugs.eclipse.org/bugs/show_bug.cgi?id=331569
Essentially an SE persistence unit running both JPA 2.0 api and the 2.0 XSD schema work fine. I will next retest the EE case with variations of the 3 types of injection on the SSB or Servlet.
Update: There are 3 (possibly 4) issues here (all of these may become obsolete when the next WLS version ships)Initially I got the same 2.0 schema error and the ClassCastException on org.eclipse.persistence.jpa.PersistenceProvider
It turns out that my import of the 2 eclipse projects from my bug # 296271 for WebLogic 10.3.2.0 lost their facets(specifically the dynamic web facet) because I associated them with a different WebLogic 10.3.3.0. - this caused the CCE I was experiencing like Sri.
Anyways, after creating an EAR/Web project combination from scratch in eclipse associated with the 10.3.3.0 instance - I predeployed/deployed/ran fine - even with the 2.0 schema - in SE bootstrap mode (no EE yet).
Reproduction Procedure:
redoing project from scratch as I noticed that the war was not at the root of the ear - it was a jar in the app-inf/lib dir - my imported eclipse project was not referenced correctly as a web module facet- create empty EAR and WAR project with references
- download and open my EAR and WAR project code from bug # 296271
https://bugs.eclipse.org/bugs/show_bug.cgi?id=296271
- do essentially all the steps in the page below (I paraphrase for re-verification)
http://wiki.eclipse.org/EclipseLink/Development/JPA_2.0/weblogic#DI_1.1:_Alternative_3:_Application_Level_Shared_Library_-InUse
- copy applicationService, entity and FrontController servlet code into new projects
- create persistence.xml and MANIFEST.MF manifest in src\META-INF
- update manifest
Class-Path: APP-INF/lib/eclipselink.jar
APP-INF/lib/javax.persistence_2.0.0.v200911041116.jar
- copy both javax.persistence 2.0 and eclipselink 2.x jars to APP-INF/lib
- change ordering of WebLogic library modules classpath reference (javax.persistence 1.0) to ear reference (2.0 version)
- update web.xml with servlet tags
- update weblogic.xml with new context root
- make the persistence unit name the same in persistence.xml and ApplicationManagedService
- update weblogic-application.xml with prefer-application-packages overrides
<wls:prefer-application-packages>
<wls:package-name>javax.persistence.*</wls:package-name>
<wls:package-name>org.eclipse.persistence.*</wls:package-name>
</wls:prefer-application-packages>
- enable server redirect logging
<!-- new for 10.3.3.0 http://wiki.eclipse.org/EclipseLink/Examples/JPA/Logging#Server_Logging -->
<property name="eclipselink.logging.logger" value="DefaultLogger"/>
- start WebLogic 10.3.3.0
- deploy (run on) server from eclipse or export ear to auto deploy directory
1) JPA 2.0 XSD usage on 10.3.3.0
- I reproduced this issue with a bad EAR
- was able to use the 2.0 schema within the WAR-only application managed EAR
persistence.xml<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<!-- persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"-->
<persistence-unit name="example2" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>localJTA</jta-data-source>
<class>org.eclipse.persistence.example.business.Cell</class>
<shared-cache-mode>NONE</shared-cache-mode>
<properties>
<property name="eclipselink.target-server" value="WebLogic_10"/>
<property name="eclipselink.logging.level" value="FINEST"/>
<property name="eclipselink.target-database" value="Derby"/>
<!-- new for 10.3.3.0 http://wiki.eclipse.org/EclipseLink/Examples/JPA/Logging#Server_Logging -->
<property name="eclipselink.logging.logger" value="DefaultLogger"/>
<!-- property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:derby://127.0.0.1:1527/dataparallel;create=true"/>
<property name="javax.persistence.jdbc.user" value="APP"/>
<property name="javax.persistence.jdbc.password" value="APP"/-->
<!-- turn off DDL generation after the model is stable -->
<!-- property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
<property name="eclipselink.ddl-generation.output-mode" value="both"/-->
</properties>
</persistence-unit>
</persistence>
2) CCE on JPA provider implementation class
Error instantiating the Persistence Provider class org.eclipse.persistence.jpa.PersistenceProvider of the PersistenceUnit example2: java.lang.ClassCastException: org.eclipse.persistence.jpa.PersistenceProvider
- I reproduced and fixed this one (was Eclipse project facet issue) - EAR was wrong
- was able to run JPA 2.0 code fine on an SE PU (predeploy/deploy together)
- EE injection should not work but I will post an example EAR anyway
log[EL Example]: enterprise: JPA 2.0 Metamodel: MetamodelImpl@56287508 [ 3 Types: , 1 ManagedTypes: , 1 EntityTypes: , 0 MappedSuperclassTypes: , 0 EmbeddableTypes: ]
3) CCE on JPA spec interface class
- I could not reproduce this one
Re: WebLogic 11g EAR EJB Classpath and class loaders
Error processing persistence unit PT of module pt: Error instantiating the Persistence Provider class org.eclipse.persistence.jpa.PersistenceProvider of the PersistenceUnit PT: java.lang.ClassCastException: org.eclipse.persistence.jpa.PersistenceProvider cannot be cast to javax.persistence.spi.PersistenceProvider
4) CCE on fallback Kodo JPA provider (if an invalid say 2.1 JPA XSD schema is referenced)
java.lang.ClassCastException: kodo.persistence.PersistenceProviderImpl
at javax.persistence.Persistence.findAllProviders(Persistence.java:186)
java.lang.NoSuchMethodError: javax/persistence/EntityManager.getMetamodel()Ljavax/persistence/metamodel/Metamodel;
- reproduced by using the 1.0 javax.persistence jar (but named as the 2.0 one in APP-INF/lib)
- fixed by using either the 1.0 or 2.0 JPA XSD schema and using the correct 2.0 spec jar
thank you
/michael -
JNDI / EJB deployment and clustering
I'm aware that replication isn't supported for stateful EJBs. But the
"serialization of the handle isn't supported" statement has me concerned.
So I'm looking for a little clarification on this scenario:
Let's say I've got a stateful session bean, which is accessed from a
servlet. For performance reasons, you want to find the colocated instance -
the smart stub should do this, right? To have it colocated in all
instances, then I need to deploy it into each server of the cluster. This
essentially bind()/rebind()'s (whichever call the container does during a
deploy operation) the EJB n times. Does each of those JNDI bind/rebind
calls "overwrite" the previous one, or does the replicated JNDI tree somehow
"keep" all the entries?
What happens if I bind/rebind "non-cluster enabled" objects into the JNDI
tree in each server to the same name (like a reference data table - doesn't
really need to be an RMI object, one per server is fine)? Will they get
"overwritten"? Should I need to take into account the server name when
binding into the tree, and then also use that for subsequent lookups?
Thanks for any input!
--Jason
Guys,
Thanks for the information.
The problem was that classpath, some other packages required for the Bean
were not in the weblogic\classes directory.
so that was it.
Thanks
/selvan
Murali Krishna Devarakonda wrote in message
<7qjkr1$7dl$[email protected]>...
Are you using the HOT DEPLOY feature(startweblogic.bat does it)?
Then you could go to the WebLogic Console, select the Bean, and Redploy.
You could also do it from a command line utility "weblogic.deploy".
If you didn't start the server with the hot deploy, you need to restartyour
server after any changes.
You should read the weblogic docs on the Hot Deploy feature. A different
classloader is used for it. Also, the standard weblogic classpath cannot
coexist with it.
Hot Deploy uses: (assuming your weblogic installation is in D:/WebLogic
D:\WebLogic\classes/boot
It will throw an exception if you have D:\weblogic\classes or
D:\WebLogic\lib\weblogicaux.jar in the system classpath. You need to use
the weblogic.classpath instead.
Regards,
Murali Krishna Devarakonda
Tamilselvan Ramasamy <[email protected]> wrote in message
news:7qi0ln$kpc$[email protected]..
Hello,
I have created bunch of EJB Components and deployed for WLS4.0 using the
following way. It works fine under WLS4.0
To compile java code -> javac *.java
Create SER file -> java weblogic.ejb.utils.DDCreator -d .
DeploymentDescriptor.txt
Create JAR file -> jar cmf manifest Bean.jar /directory
EJBC and deployment -> java weblogic.ejbc -d /targetDirectory Bean.jar
and also add an entry in the welogic.properties file
weblogic.ejb.deploy= ...
When I do the samething in the WLS4.5, it doesn't work, first of all,
JNDI
is not finding the home interface. It throws a naming Exception
please give me an idea hw do I deploy my Beans in the WLS4.5 using the
command line option. I don't have Visual Cafe to do that automatically.So
I
have to do that manually.
Thanks
/selvan
Captura Software Inc
[email protected] -
Memory Problem with SEt and GET parameter
hi,
I m doing exits. I have one exit for importing and another one for changing parameter.
SET PARAMETER exit code is ....
*data:v_nba like eban-bsart,
v_nbc like eban-bsart,
v_nbo like eban-bsart.
v_nbc = 'CAPX'.
v_nbo = 'OPEX'.
v_nba = 'OVH'.
if im_data_new-werks is initial.
if im_data_new-knttp is initial.
if im_data_new-bsart = 'NBC' or im_data_new-bsart = 'SERC' or im_data_new-bsart = 'SERI'
or im_data_new-bsart = 'SER' or im_data_new-bsart = 'SERM' or im_data_new-bsart = 'NBI'.
set parameter id 'ZC1' field v_nbc.
elseif im_data_new-bsart = 'NBO' or im_data_new-bsart = 'NBM' or im_data_new-bsart = 'SERO'.
set parameter id 'ZC2' field v_nbo.
elseif im_data_new-bsart = 'NBA' or im_data_new-bsart = 'SERA'.
set parameter id 'ZC3' field v_nba.
endif.
endif.
endif. *
and GET PARAMETER CODE IS....
get parameter id 'ZC1' field c_fmderive-fund.
get parameter id 'ZC2' field c_fmderive-fund.
get parameter id 'ZC3' field c_fmderive-fund.
FREE MEMORY ID 'ZC1'.
FREE MEMORY ID 'ZC2'.
FREE MEMORY ID 'ZC3'.
In this code i m facing memory problem.
It is not refreshing the memory every time.
So plz give me proper solution.
Its urgent.
Thanks
RanveerHi,
I suppose you are trying to store some particular value in memory in one program and then retieve it in another.
If so try using EXPORT data TO MEMORY ID 'ZC1'. and IMPORT data FROM MEMORY ID 'ZC1'.
To use SET PARAMETER/GET PARAMETER the specified parameter name should be in table TPARA. Which I don't think is there in your case.
Sample Code :
Data declarations for the function codes to be transferred
DATA : v_first TYPE syucomm,
v_second TYPE syucomm.
CONSTANTS : c_memid TYPE char10 VALUE 'ZCCBPR1'.
Move the function codes to the program varaibles
v_first = gv_bdt_fcode.
v_second = sy-ucomm.
Export the function codes to Memory ID
EXPORT v_first
v_second TO MEMORY ID c_memid. "ZCCBPR1 --- Here you are sending the values to memory
Then retrieve it.
Retrieve the function codes from the Memory ID
IMPORT v_first TO v_fcode_1
v_second TO v_fcode_2
FROM MEMORY ID c_memid. "ZCCBPR1
FREE MEMORY ID c_memid. "ZCCBPR1
After reading the values from memory ID free them your problem should be solved.
Thanks
Barada
Edited by: Baradakanta Swain on May 27, 2008 10:20 AM -
SET PARAMETER AND GET PARAMETER
What is the difference between Set parameter and Get parameter?
Hi,
Set parameter is used to put some value into ABAP memory area, get paramter is used to retrive values form ABAP memory.
refer the below sample code.
here i am taking one material number and i am passing that mateial number by using 'set parameter id', the material number will be stored in ABAP-memory area 'MAT', and then i am calling the Tcode 'MM03', after executing the Tcode (from program) automatically 'MM03' will reads that material number from that ABAP-memory area and it will displays the 'MM03' tcode along with material number.
you can find the parameter-id's from data element of that field.
parameters: p_matnr like mara-matnr.
set parameter id 'MAT' field p_matnr.
call transaction 'MM03'.
Reward if useful.
Thanks,
Sreeram. -
How set and get parameter for a session of a portlet (Java)
I would like get parameter and set parameter for a portlet in portal 9.02. This parameter must be availbale during the session of the portal.
With Java Servlet
// I retrieve my session
HttpServletRequest httpreq = (HttpServletRequest)req;
HttpServletResponse httpresp = (HttpServletResponse)resp;
HttpSession session = httpreq.getSession();
//And after i can get or set some parameter for this servlet
//Example
session.setAttribute("MyEmployeeNumber","600000");
String id = (String)session.getAttribute("MyEmployeeNumber");
// But with Portlet in portal, i can't do it.
PortletRenderRequest pr= (PortletRenderRequest)httpreq.getAttribute(HttpCommonConstants.PORTLET_RENDER_REQUEST);
String sUser=pr.getUser().getName();
ProviderSession session=pr.getSession();
// But after if i want get or set a value in this session i have a internal error 500
session.setAttribute("MyEmployeeNumber","600000");
I would like my parameter is avalaible during a session for a user in each page of the portal, because my portlet is on each page.I have almost the same problem. I tried as you suggested, but it doesn't work yet.
provider.xml
<session>true</session>
<passAllUrlParams>true</passAllUrlParams>
My code in my jsp-portlet is
<%@page contentType="text/html; charset=windows-1252"
import="oracle.portal.provider.v2.render.PortletRenderRequest"
import="oracle.portal.provider.v2.render.PortletRendererUtil"
import="oracle.portal.provider.v2.http.HttpCommonConstants"
import="oracle.portal.provider.v2.ParameterDefinition"
import="oracle.portal.provider.v2.render.http.HttpPortletRendererUtil"
%>
<%@page session="true"%>
<%
PortletRenderRequest pReq = (PortletRenderRequest)request.getAttribute(HttpCommonConstants.PORTLET_RENDER_REQUEST);
String valueSession = (String)pReq.getAttribute("sesion");
if (valueSession != null) {
pReq.setAttribute("session", "value1");
out.println("<br>(1)valueSession != null");
out.println("<br>(1)valueSession : " + pReq.getAttribute("session"));
} else {
pReq.setAttribute("session", "value2");
out.println("<br>(2)valueSession == null");
out.println("<br>(2)valueSession : " + pReq.getAttribute("session"));
%>
And i always get as result:
(2)valueSession == null
(2)valueSession : value2
Even when i send values (post) at the same page or browsing between tabs:
I check my provider registration and it has the value "once per session"
I have portal 9.0.2.2.14
Thanks -
Get and Set Parameter ID in BDC Call transaction
Hi all
I have written this BDC program to run a transaction eg33 to install meter. After meter get installled System generates Device location number. I need to use this device location number in calling another transaction il03. but my data fetching using get and set parameter id is not giving accurate result. Kindly check my code and suggest where should I improve. Or whatelse can I do to fullfill this type of requirement other than GET and SET PARAMETER ID.
REPORT ZAC_EG33 NO STANDARD PAGE HEADING
LINE-SIZE 100.
TABLES: EABL,
BUT000,
ZISUH0003.
DATA :
XYZ LIKE IFLO-TPLNR.
DATA: IT_STATUS TYPE ZISUH0003.
DATA: G_INDEX TYPE I,
G_START_COL TYPE I VALUE '1', "start column
G_START_ROW TYPE I VALUE '14', "start row
G_END_COL TYPE I VALUE '18', "maximum column
G_END_ROW TYPE I VALUE '75', "maximum row
G_TEXT(20), "stores error messages
G_PAGES TYPE I,
G_CURRENT_PAGE TYPE I,
G_COUNT LIKE SY-DBCNT.
data: l_file type file_table,
file1 type string,
l_title type string,
LENGTH TYPE I,
FILES type filetable,
SUBRC type i,
STR_FILE type STRING,
D_FILE type RLGRAP-FILENAME,
filename TYPE String,
L_itab_date(10).
FIELD-SYMBOLS : <FS>.
DATA: IT_EXCEL LIKE STANDARD TABLE OF ALSMEX_TABLINE WITH HEADER LINE,
IT_MESS TYPE STANDARD TABLE OF BDCMSGCOLL WITH HEADER LINE.
TYPES: BEGIN OF TY_OPEN,
HAUS LIKE REG30-HAUS,
EADAT(10),
GERAETNEU LIKE REG30-GERAETNEU,
MESSDRCK LIKE REG30-MESSDRCK,
ZWSTANDCE LIKE REG30-ZWSTANDCE,
END OF TY_OPEN.
DATA : T_ANLAGE LIKE EANLD-ANLAGE,
VSTELLE LIKE EVBS-VSTELLE,
S_ANLAGE LIKE EANLD-ANLAGE,
temp_c(7).
DATA: IT_OPEN TYPE STANDARD TABLE OF TY_OPEN WITH HEADER LINE.
DATA: BDCDATA TYPE STANDARD TABLE OF BDCDATA WITH HEADER LINE.
SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN SKIP 2.
PARAMETERS: P_FILE like RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN SKIP 2.
SELECTION-SCREEN END OF BLOCK 1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE .
PERFORM GET_FILE_NAME.
MOVE FILENAME TO P_FILE.
START-OF-SELECTION.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = p_file
I_BEGIN_COL = 1 "VF_START_COL
I_BEGIN_ROW = 2 "VF_START_ROW
I_END_COL = 5 "VF_END_COL
I_END_ROW = 10000 "VF_END_ROW
TABLES
INTERN = IT_EXCEL
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
OTHERS = 3
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF IT_EXCEL[] IS INITIAL.
G_TEXT = 'No Data Uploaded'.
ELSE.
SORT IT_EXCEL BY ROW COL.
LOOP AT IT_EXCEL.
MOVE : IT_EXCEL-COL TO G_INDEX.
ASSIGN COMPONENT G_INDEX OF STRUCTURE IT_OPEN TO <FS>.
MOVE IT_EXCEL-VALUE TO <FS>.
AT END OF ROW.
IF NOT IT_OPEN IS INITIAL.
APPEND IT_OPEN." TO IT_LINE.
CLEAR IT_OPEN.
CLEAR IT_EXCEL.
ENDIF.
ENDAT.
ENDLOOP.
ENDIF.
REFRESH IT_EXCEL.
ULINE.
FORMAT COLOR 3 ON.
WRITE: /1 sy-vline ,
2 'Material No.' ,
25 sy-vline,
2 'Logs' ,
100 sy-vline.
uline.
FORMAT COLOR OFF.
PERFORM BDC_OPEN_READING.
MESSAGE S013(ZPS).
*& Form GET_FILE_NAME
text
--> p1 text
<-- p2 text
FORM GET_FILE_NAME .
REFRESH FILES.
call method cl_gui_frontend_services=>file_open_dialog
exporting
window_title = l_title
changing
file_table = files
rc = subrc
exceptions
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
others = 4.
check sy-subrc = 0.
loop at files into l_file.
str_file = l_file.
move str_file to filename.
exit.
endloop.
ENDFORM. " GET_FILE_NAME
*& Form BDC_OPEN_READING
text
--> p1 text
<-- p2 text
FORM BDC_OPEN_READING .
LOOP AT IT_OPEN.
REFRESH BDCDATA.
clear : temp_c.
move it_open-MESSDRCK to temp_c.
condense : temp_c.
PERFORM MAP1.
CALL TRANSACTION 'EG33' USING BDCDATA MODE 'A' MESSAGES INTO IT_MESS.
+***changes by added on 28/02/08 +
get parameter id 'IFL' FIELD XYZ.
PERFORM MAP2.
set parameter id 'IFL' FIELD XYZ.
++*
CALL TRANSACTION 'IL03' USING BDCDATA MODE 'A' MESSAGES INTO IT_MESS.
+****end change added on 28.02.08+DATA: G_INSNO LIKE IT_OPEN-HAUS.
IF NOT IT_MESS[] IS INITIAL.
G_INSNO = IT_OPEN-HAUS.
PERFORM GET_MESSAGES TABLES IT_MESS USING G_INSNO." IT_LINE.
ENDIF.
READ TABLE IT_MESS WITH KEY MSGTYP = 'E'.
IF SY-SUBRC NE 0.
READ TABLE IT_MESS WITH KEY MSGTYP = 'S' MSGNR = '622'.
IF SY-SUBRC EQ 0.
SELECT SINGLE VSTELLE FROM EVBS INTO VSTELLE WHERE HAUS = IT_OPEN-HAUS.
SELECT SINGLE ANLAGE FROM EANL INTO T_ANLAGE WHERE VSTELLE = VSTELLE.
MOVE T_ANLAGE TO IT_STATUS-ANLAGE.
MOVE 'X' TO IT_STATUS-RFC.
*perform get_date_format using IT_OPEN-EADAT.
MOVE IT_OPEN-EADAT TO IT_STATUS-ADATE.
SELECT SINGLE ANLAGE FROM ZISUH0003 INTO S_ANLAGE WHERE ANLAGE =
T_ANLAGE.
IF SY-SUBRC EQ 4.
INSERT ZISUH0003 FROM IT_STATUS.
ELSE.
UPDATE ZISUH0003 FROM IT_STATUS.
ENDIF.
ENDIF.
ENDIF.
REFRESH IT_MESS.
CLEAR IT_MESS.
ENDLOOP.
ENDFORM. " BDC_OPEN_READING
Start new screen *
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM.
Insert field *
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL <> SPACE.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDIF.
ENDFORM.
*& Form MAP1
text
--> p1 text
<-- p2 text
FORM MAP1 .
perform bdc_dynpro using 'SAPLE30D' '0100'.
perform bdc_field using 'BDC_CURSOR'
'REG30-GERAETNEU'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'REG30-HAUS'
IT_OPEN-HAUS. "'100000000033'.
perform bdc_field using 'REG30-EADAT'
IT_OPEN-EADAT. "'18.02.2006'.
perform bdc_field using 'REG30-GERAETNEU'
IT_OPEN-GERAETNEU. "'66a'.
perform bdc_dynpro using 'SAPLE30D' '0220'.
perform bdc_field using 'BDC_CURSOR'
'REG30-TEMP_AREA(02)'.
perform bdc_field using 'BDC_OKCODE'
'=SAVE'.
perform bdc_field using 'REG30-MESSDRCK'
temp_c. "IT_OPEN-MESSDRCK'0.0125'.
perform bdc_field using 'REG30-GERWECHS'
'05'.
perform bdc_field using 'REG30-ANZDAYSOFPERIOD(01)'
'30'.
perform bdc_field using 'REG30-ZWSTANDCE(01)'
IT_OPEN-ZWSTANDCE. "'10'.
perform bdc_field using 'REG30-ZWSTANDCE(02)'
'0'.
perform bdc_field using 'REG30-PERVERBR(01)'
'0'.
perform bdc_field using 'REG30-PERVERBR(02)'
'0'.
perform bdc_field using 'REG30-TEMP_AREA(01)'
'0001'.
perform bdc_field using 'REG30-TEMP_AREA(02)'
'0001'.
perform bdc_field using 'REG30-PR_AREA_AI(01)'
'0001'.
perform bdc_field using 'REG30-PR_AREA_AI(02)'
'0001'.
ENDFORM. " MAP1
****CHANGEs added BY ALKA 28.02.08
*& Form MAP2
text
--> p1 text
<-- p2 text
FORM MAP2 .
perform bdc_dynpro using 'SAPMILO0' '1110'.
perform bdc_field using 'BDC_CURSOR'
'IFLO-TPLNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'IFLO-TPLNR'
XYZ..
perform bdc_field using 'RILO0-TPLKZ'
'AO_GP'.
perform bdc_dynpro using 'SAPMILO0' '2100'.
perform bdc_field using 'BDC_CURSOR'
'IFLO-PLTXT'.
perform bdc_field using 'BDC_OKCODE'
'=T\04'.
perform bdc_field using 'IFLO-PLTXT'
'DEVICE LOCATION'.
perform bdc_dynpro using 'SAPMILO0' '2100'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'IFLO-PLTXT'
'DEVICE LOCATION'.
perform bdc_field using 'BDC_CURSOR'
'ITOBATTR-EINZL'.
perform bdc_field using 'ITOBATTR-IEQUI'
'X'.
perform bdc_field using 'ITOBATTR-EINZL'
'X'.
ENDFORM. " MAP2
*****END CHANGE added on 28.02.08
*& Form get_date_format
text
-->P_IT_ORDER_TABLE_C_DATE text
FORM get_date_format USING L_ITAB_DATE." LIKE SY-DATUM.
data: d_temp(4),
m_temp(2),
y_temp(4).
*move L_ITAB_DATE to L_ITAB_DATE.
y_temp = L_ITAB_DATE(4).
m_temp = L_ITAB_DATE+4(2).
d_temp = L_ITAB_DATE+6(2).
CONCATENATE d_temp '.' m_temp '.' y_temp into L_ITAB_DATE.
ENDFORM. " get_date_format
*& Form GET_MESSAGES
text
-->P_IT_MESS text
-->P_G_INSNO text
FORM GET_MESSAGES TABLES IT_MESS STRUCTURE BDCMSGCOLL USING G_INSNO .TABLES T100.
DATA: L_MSTRING(255).
LOOP AT IT_MESS WHERE MSGTYP = 'E' OR MSGTYP = 'S'.
SELECT SINGLE * FROM T100 WHERE SPRSL = IT_MESS-MSGSPRA
AND ARBGB = IT_MESS-MSGID
AND MSGNR = IT_MESS-MSGNR.
IF SY-SUBRC = 0.
L_MSTRING = T100-TEXT.
IF L_MSTRING CS '&1'.
REPLACE '&1' WITH IT_MESS-MSGV1 INTO L_MSTRING.
REPLACE '&2' WITH IT_MESS-MSGV2 INTO L_MSTRING.
REPLACE '&3' WITH IT_MESS-MSGV3 INTO L_MSTRING.
REPLACE '&4' WITH IT_MESS-MSGV4 INTO L_MSTRING.
ELSE.
REPLACE '&' WITH IT_MESS-MSGV1 INTO L_MSTRING.
REPLACE '&' WITH IT_MESS-MSGV2 INTO L_MSTRING.
REPLACE '&' WITH IT_MESS-MSGV3 INTO L_MSTRING.
REPLACE '&' WITH IT_MESS-MSGV4 INTO L_MSTRING.
ENDIF.
CONDENSE L_MSTRING.
ENDIF.
CONDENSE G_INSNO.
CONCATENATE 'For' ' ' G_INSNO ',' L_MSTRING INTO L_MSTRING SEPARATED BY SPACE.
FORMAT COLOR 2 ON.
*IF IT_MESS-MSGTYP = 'S' AND IT_MESS-MSGNR = '622'.
*WRITE: 1 sy-vline,
L_MSTRING under 'Error Messages',
100 sy-vline.
*ULINE.
*ELSEIF IT_MESS-MSGTYP = 'E'.
WRITE: 1 sy-vline,
L_MSTRING under 'Logs',
100 sy-vline.
ULINE.
*ENDIF.
ENDLOOP.
ENDFORM. " GET_MESSAGESi think there might be some time gap between CALL TRANSACTION and GET PARAMETER ID.....,that is to say,the new No. has not been generated and what you fetch is an old No..
i think you should use the "CALL TRANSACTION" like the following one:
CALL TRANSACTION 'EG33' USING BDCDATA MODE 'A' UPDATE 'L' MESSAGES INTO IT_MESS .
then i think you can get the right value.
P.S: the different update model(from SAP document)
upd Effect
"A" Asynchronous update. Updates of called programs are executed in the same way as if in the COMMIT WORK statement the AND WAIT addition was not specified.
"S" Synchronous processing. Updates of the called programs are executed in the same way as if in the COMMIT WORK statement the AND WAIT addition had been specified.
"L" Local update. Updates of the called program are executed in such a way as if the SET UPDATE TASK LOCAL statement had been executed in it.
Other As for "A". -
Oracle Instant Client and OUT Parameter of custom type in Stored Procedures
Hi @ all!
I try to set up a simple client application, that calls a stored procedure via Instant Client from C#.
The stored procedure and assiciated types looks like this:
TYPE MYVALUE AS OBJECT
Id INTEGER,
value FLOAT
TYPE MYVALUELIST AS TABLE OF MYVALUE;
PROCEDURE ReadValues( ID IN INTEGER,
RESULTSET OUT MYVALUELIST)
IS
...I created an Oracle Command executing this SP and added OracleParameters for ID and (where I got stuck) the RESULTSET.
Is it possible to pass a parameter with a custom type from C# in some way?
I already tried it as a function with SELECT * FROM TABLE(ReadValues(1));
With my parameter RESULTSET as the RETURN type. But since I use DML within the procedure, this does not work inside of a query...
Any suggestions?
Thanks in advance!Hi Greg!
Sorry, I misunderstood the forum topic then. =(
Anyway, in the example you provided in the link, this is nearly exactly my situation. But there the Oracle.DataAccess.Client is used, where the OracleDBType can be called to initialize an object of type person. I use the instant client libraries called by using System.Data.OracleClient. There is only the OracleType enum, that does not contain an object or something similar.
So I do it right now after trying a bit with a ref cursor parameter and an OracleDataAdapter - the ref cursor is passed back from Oracle as a DataReader, so die DataAdapter is able to use it for a .Fill():
OracleCommand cmd = new OracleCommand();
cmd.Parameters.Add("RESULTSET", OracleType.Cursor).Direction = ParameterDirection.Output;
OracleDataAdapter odr = new OracleDataAdapter(cmd);
DataTable result = new DataTable();
odr.Fill(result);Within my stored procedure I just added the following OUT parameter:
PROCEDURE ReadValues( ID IN INTEGER,
RESULTSET OUT sys_refcursor)
IS
currentlist MYVALUELIST;
... [Adding elements to that list] ...
OPEN resultset for select * from TABLE(currentlist);It works now, but I don't like that solution that much since I'm always afraid that there are lots of opened cursors idyling around. Do I have to close this one explicitly after filling my table by the DataAdapter?
Regards -
A series of video files (0001.MTS to 0005.MTS) were imported into premiere, when moved to timeline premiere combined them and made them look like one long clip named 0001.MTS. Multiple motion edits and opacity edits were made. When project manager moved the project, the actual video content of 0002.MTS to 0005.MTS was missing(source clips are still there but they were playing and working as part of that 0001.MTS timeline clip before). Those parts of the 0001.MTS clip in the timeline were Danger Striped and can be relinked but now have no edits anymore. The edits are apparently only linked with the original 0001.MTS source clip but extend beyond the actual range of the actual source clip. At the time I thought it was weird that premiere displayed the whole string of clips as one (with one name and no breaks) but it all works in the original project file but cannot be transferred to another location without multiple clips showing Danger Stripes.I need to move it and preserve the dozens of motion and opacity edits linked to the apparently oversized timeline clip. HELP!! any ideas?
I did not nest any clips or sequences, premiere just seemed to combine the clips under one name when I moved them to timeline.
I am using CS5.A series of video files (0001.MTS to 0005.MTS) were imported into premiere, when moved to timeline premiere combined them and made them look like one long clip named 0001.MTS. Multiple motion edits and opacity edits were made. When project manager moved the project, the actual video content of 0002.MTS to 0005.MTS was missing(source clips are still there but they were playing and working as part of that 0001.MTS timeline clip before). Those parts of the 0001.MTS clip in the timeline were Danger Striped and can be relinked but now have no edits anymore. The edits are apparently only linked with the original 0001.MTS source clip but extend beyond the actual range of the actual source clip. At the time I thought it was weird that premiere displayed the whole string of clips as one (with one name and no breaks) but it all works in the original project file but cannot be transferred to another location without multiple clips showing Danger Stripes.I need to move it and preserve the dozens of motion and opacity edits linked to the apparently oversized timeline clip. HELP!! any ideas?
I did not nest any clips or sequences, premiere just seemed to combine the clips under one name when I moved them to timeline.
I am using CS5. -
IWeb file structure and naming system
I am trying to publish my iWeb directly to my domain (www.jessewarren.net) using the FTP direct publish function. However, iWeb is applying an overly complex naming system.
For example, its publishing not only the page names, but also the name of the Site in iWeb, after the original URL. Here's an example: http://jessewarren.net/testing/Site/Blank.html
First, I need everything to be on the domain. Then, I only need the name of the individual pages to be published, not the Site Name itself. I already have a site name, and that's my domain.
Any other advice on how to control file structure and naming in iWeb?This is not incorrect and it is the way iWeb publishes and has done ever since iWeb 06. When you publish from iWeb to a local folder, what you get is your Site folder with your site name and a separate index file.
If you don't want your site name included, then what you need to do is rather than using the direct ftp from iWeb, select ftp to a local folder instead. Your site will then be published to your desktop. Then download either Cyberduck or Transmit for free - these are dedicated ftp programs. Then all you do is load just the contents of your site folder to your public_html folder on your server and your url will then be http://www.domain.com/pagename.html.
Be aware though, that if you are loading like this, you are breaking iWeb site structure and RSS feed will not be available to you if you need to use it.
If you want to continue to use the built in iWeb ftp, then you could try naming your site public_html and then leaving the directory blank and then uploading like this and because you have named your site public_html and are uploading to the same place, your public_html folder on your server will be replaced with your website, thus eliminating the site name.
I have tried this method once myself with my own site and it does work, however, I still prefer to publish to a folder and then upload to my sever using Cyberduck. -
Stored procedure, EJB, JPA, and JavaServer Faces
Hi!
I am currently working on a Web application using EJB, JPA, and JavaServer Faces. A part of the
business logic is already stored in the database as stored procedures, so we need to call those
procedures (instead of named queries) through a EJB and represent the data on the web tier.
Where can I find an extensive tutorial using this technology? There is no such tutorial in the Oracle Learning Library.
Maybe somebody can provide a link and/or example.
Thanks in advance for your help!Hi,
http://download.oracle.com/docs/cd/B10464_05/web.904/b10313/queries.htm#1135305
For more help, see the TopLink / JPA forum
TopLink/JPA
Frank -
I have a scenario where it has multiple parameters like.....
Period which consists of "Year,Quarter,Month" as a values.
When user selects "Year" value in "Period" Parameter then "FromMonth" has to set its default value as 36th month from now.
Example: If user selects "Year" then "FromMonth" has to show "April-11".
When user selects "Year" value in "Period" Parameter then "EndMonth" has to set its default value as current month.
Example: If user selects "Year" then "FromMonth" has to show "March-14".
If user selects "Month" Value in "Period" Parameter then it has to allow user to select the Month Range and again if user selects "Year" value in "Period" Parameter then StartMonth has to show 36th month from now and
End Month has to show current month.
Please help me how to resolve this issue.
Thanks in Advance.Hi Vasu_479,
First, you need to create a dataset to set the StartDate and EndDate parameter's value using the query provided by Visakh. And then use the StartDate and EndDate parameter to filter the data in MDX query. Here is a sample query for your reference.
select
{[Measures].[Internet Sales Amount]
} on columns,
{[Date].[Date].members} on rows
from(
select
STRTOMEMBER("[Date].[Date].&["+@StartDate+"]"):STRTOMEMBER("[Date].[Date].&["+@EndDate+"]")
) on columns
from [Adventure Works]
Hope this helps.
Regards,
Charlie Liao
TechNet Community Support
Maybe you are looking for
-
Where can I purchase a sleeve that fits well on my MacBook Pro with Retina display?
I have been looking for one, but all that I find are ones originally designed for the old 15" MacBook Pro. I want one that is made for the new, thinner MacBook. Every time I think that I have found one, I read the reviews and they say that it reall
-
JTextField not displaying correctly
I have a JPanel done using Swing. I have JTextFields on the panel. I am having a problem with the text fields doing all of the following: 1. erasing the text that was populated into the fields when you click on them to edit 2. erasing the first chara
-
Bypassing the /~username on web sharing?
Hello all, I just set up my computer to host a website, and I'm looking how to set up a webpage without using the user name in the address. Right now i have <www.ip.com/~user> going to my user page stored in sites. If i just do <www.ip.com/> i get th
-
Problems downloading larger email attachments over...
I do work on friends/family PCs and I've had a number of cases (on seperate machines) of emails with larger attachments (2mb+) not being downloaded correctly. The POP3 connection either drops before the email is fully downloaded or the email is downl
-
This issue has come up a few times before on the forums, but I can't find quite what I'm looking for. Goals: 1) To log in to a website using a simple text name and password. 2) Once logged in, modify HTML forms, etc Rather than using Datasocket read/