CMP ou Session EJBs na ligação JDBC?

Olá trabalhadores!!
Estou com uma dúvida… todos os artigos/posts que vejo pra configurar no JBoss (4.0.2) a ligação JDBC ao SQL Server 2000 falam que é preciso, entre outras coisas, alterar o ficheiro /server/default/conf/standardjbosscmp-jdbc.xml
Este ficheiro não é apenas se eu usar Entity CMP beans?? :?
Corrijam-me se não estou certa: pra ligar à Base de dados usa-se session bean??

Outra coisa: só devo usar o ficheiro DBProvider-XA-DS.xml se usar JMS??

Thanks
Claudia

Olá, CLáudia,

Sim, apenas se usar CMP. O que você precisa é configurar um datasource :wink:

[color=red]Pra ligar à Base de dados usam-se session bean (e não Entity)?? Certo???

Porque é que mta gente usa CMP???[/color]
O que quero é configurar o datasource MS SQL Server2000 para o JBoss 4.0.2.
Segui um artigo e fiz o seguinte:

  1. Start MS SQL Server com sql authentication 'sa’
    Criei uma base de dados de nome Jboss
  2. Copiei o ficheiros jar do driver JDBC (msutil, msbase, mssqlserver) e pus no directorio in \server\default\lib
  3. Copiei mssql-ds.xml do directorio \docs\examples\jca\ e pus no directorio \server\default\deploy.
    Modifiquei
    [color=blue]<?xml version="1.0" encoding="UTF-8"?>
...

sa

… [/color]
3. Restart JBoss.
Na JMX Console, em jboss.jdbc foi adicionado datasource=MSSQLDS.service=metadata

  1. No directorio \server\default\conf\standardjaws.xml configurei

[color=blue]<?xml version="1.0" encoding="UTF-8"?>

java:/MSSQLDS
MS SQLSERVER2000

… [/color]

  1. No directorio \server\default\conf\standardjbosscmp-jdbc.xml configurei

[color=blue]<?xml version="1.0" encoding="UTF-8"?>

java:/MSSQLDS
MS SQLSERVER2000

… [/color]

  1. No directorio \server\default\conf\login-config.xml configurei

[color=blue]…


sa
sa

jboss.jca:service=LocalTxCM,name=MSSQLDS

[/color]

Está certo??
[color=red]1º Problema :[/color] esta configuração é pra CMP Entity beans. Certo?
como faço para session beans??
[color=red]2º Problema :[/color] escrevi um session ejb muito simples. Como posso fazer interagi-lo com a base de dados??

Antes de começar a usar o eclipse e o jboss, eu usava a classe seguinte

[color=blue]import java.*;

public class Connect{
private java.sql.Connection con = null;
private final String url = “jdbc:microsoft:sqlserver://”;
private final String serverName= “FRC-GIIT-CIRKUS”;
private final String portNumber = “850”;
private final String databaseName= “pubs”;
private final String userName = “sa”;
private final String password = “”;
// Informs the driver to use server a side-cursor,
// which permits more than one active statement
// on a connection.
private final String selectMethod = “cursor”;

// Constructor
public Connect(){}

private String getConnectionUrl(){
return url+serverName+":"+portNumber+";databaseName="+databaseName+";selectMethod="+selectMethod+";";
}

private java.sql.Connection getConnection(){
try{
Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);
con = java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);
if(con!=null) System.out.println(“Connection Successful!”);
}catch(Exception e){
e.printStackTrace();
System.out.println("Error Trace in getConnection() : " + e.getMessage());
}
return con;
}

/*
Display the driver properties, database details
*/

public void displayDbProperties(){
java.sql.DatabaseMetaData dm = null;
java.sql.ResultSet rs = null;
try{
con= this.getConnection();
if(con!=null){
dm = con.getMetaData();
System.out.println(“Driver Information”);
System.out.println("\tDriver Name: “+ dm.getDriverName());
System.out.println(”\tDriver Version: “+ dm.getDriverVersion ());
System.out.println(”\nDatabase Information “);
System.out.println(”\tDatabase Name: “+ dm.getDatabaseProductName());
System.out.println(”\tDatabase Version: "+ dm.getDatabaseProductVersion());
System.out.println("Avalilable Catalogs “);
rs = dm.getCatalogs();
while(rs.next()){
System.out.println(”\tcatalog: "+ rs.getString(1));
}
rs.close();
rs = null;
closeConnection();
}else System.out.println(“Error: No active Connection”);
}catch(Exception e){
e.printStackTrace();
}
dm=null;
}

private void closeConnection(){
try{
if(con!=null)
con.close();
con=null;
}catch(Exception e){
e.printStackTrace();
}
}

public static void main(String[] args) throws Exception
{
Connect myDbTest = new Connect();
myDbTest.displayDbProperties();
}

} [/color]

Ainda posso usar esse código? Onde o ponho???

Por favor ajudem, pois estou encravadissima :frowning:
Thanks Claudia