Problema com acesso a banco oracle 8i

Pessoal,

Estou com problemas para acessar um banco de dados em um servidor Oracle 8i, eu também acesso outros servidores Oracle de versões diferentes com 9, 10 e 11 sem problemas utilizando o jar ojdbc6.jar, para acessar o do Oracle 8i eu estou usando a lib classes12.jar mas não estou conseguindo acessar o banco, utilizo a JDK 1.6 ou 1.5, alguém por favor já teve esse problema ? Estou fazendo algo de errado ?

Desde já obrigado.

Olá!

Mas ocorre alguma mensangem de erro?

Eu atualmente uso a versão 10, mas nos mostre a mensagem de erro, quem sabe podemos ajudar.

Luciane

Está.

Então está dando essa mensagem

java.lang.ArrayIndexOutOfBoundsException: 4
at oracle.jdbc.driver.T4C8TTIdty.(T4C8TTIdty.java:477)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1101)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301)
at oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:531)
at oracle.jdbc.driver.T4CConnection.(T4CConnection.java:221)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)
at br.com.teste.util.teste.getConnection(DBAUtil.java:45)
at br.com.teste.dba.quartz.jobs.ExecutaDado.execute(ExecutaDado.java:166)
at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)

Valeu

Pessoal,

Só pra dizer que eu também usei outra lib a ojdbc14.jar mas deu o mesmo erro citado acima, ainda não resolvi o problema.

Obrigado

Como está teu código de conexão?

Bom eu estou usando as consfigurações abaixo :

driver : classes12.jar
JDK : 1.6
driver de conexão : oracle.jdbc.driver.OracleDriver
string de conexão : jdbc:oracle:thin:@[ip]:[porta]/[instancia]

Lembrando que esses dados esão em uma tabela e cada servidor possui sua configuração própria e também versão do Oracle diferente.

Obrigado

Isso não é teu código de conexão com o banco de dados.

Bom eu faço a conexão através de acesso a configuração de arquivos e metódos para conectar aos bancos, e não

Linha da classe que faz a conexão com o banco.

Connection conn = DBAUtil.getConnection(fileName, driver, connectString, user, password);

Onde :

fileName : classes12.jar
driver : oracle.jdbc.driver.OracleDriver
connectString : jdbc:oracle:thin:@[ip]:[porta]/[instancia]
user : teste
password : teste

Classe DBAUtil que gera a conexão com o Banco de Dados.


public class FarolDBAUtil {

	private static LinkedHashMap<String, Driver> loadedDrivers = new LinkedHashMap<String, Driver>();

	public static Connection getConnection(String fileName, String driver, String connectionString, String username, String password) throws MalformedURLException, InstantiationException,	IllegalAccessException, ClassNotFoundException, SQLException {
		Connection con = null;
		if(driver != null) {
			driver = driver.trim();
		}
		Properties props = new Properties();
		props.put("user", username);
		props.put("password", password);

		Driver d = loadJdbcDriver(driver, fileName);
		con = d.connect(connectionString, props);
		return con;
	}

	private static Driver loadJdbcDriver(String driver, String fileName) throws InstantiationException, IllegalAccessException, ClassNotFoundException, MalformedURLException {
		Driver d;
		if (loadedDrivers.containsKey(driver)) {
			d = (Driver) loadedDrivers.get(driver);
		} else {
			File file = new File(Constants.HOME + Constants.LIB + "/" + fileName);
			URL[] urls;
			urls = new URL[] { file.toURL() };
			ClassLoader loader = URLClassLoader.newInstance(urls);
			d = (Driver) Class.forName(driver, true, loader).newInstance();
			loadedDrivers.put(driver, d);
		}
		return d;
	}

	public static Properties loadSchedulerConfig() {
		log.debug("Carregando Configurações do Quartz");
		Properties properties = new Properties();
		try {
			File file = new File(Constants.HOME + Constants.CONFIG_DIR + Constants.QUARTZ_CONFIG);
			FileInputStream fileInputStream = new FileInputStream(file);
			properties.load(fileInputStream);
		} catch (IOException exception) {
		}
		return properties;
	}

Depois de passar por todo esse processo o objeto conn vem nulo, não conseguindo se conectar com o Banco.

Por isso prefiro o try/catch

public static Connection getConnection(String fileName, String driver, String connectionString, String username, String password) throws MalformedURLException, InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException {  
        Connection con = null;  
        if(driver != null) {  
            driver = driver.trim();  
        }  
        Properties props = new Properties();  
        props.put("user", username);  
        props.put("password", password);  
  
        Driver d = loadJdbcDriver(driver, fileName);  
        con = d.connect(connectionString, props);  
        return con;  
    }  

Provável problema aqui.
Bota um try / catch aqui e testa.

Essa linha abaixo que chama o método já está dentro de um try/catch

Connection conn = DBAUtil.getConnection(fileName, driver, connectString, user, password);  

Mas eu também coloquei dentro do método como vc falou, mas deu na mesma ele não conseguiu conectar.

Obrigado

[quote=seleghini]Essa linha abaixo que chama o método já está dentro de um try/catch

Connection conn = DBAUtil.getConnection(fileName, driver, connectString, user, password);  

Mas eu também coloquei dentro do método como vc falou, mas deu na mesma ele não conseguiu conectar.

Obrigado
[/quote]
Claro, claro.
Então me diga, POR QUE RAIOS O TEU CONNECTION FICA NULL?

drsmachado,

Ele lança esse exception quando tenta de conectar com o banco, como postei anteriormente.

java.lang.ArrayIndexOutOfBoundsException: 4
	at oracle.jdbc.driver.T4C8TTIdty.<init>(T4C8TTIdty.java:477)
	at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1101)
	at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301)
	at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531)
	at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221)
	at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
	at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)
	at br.com.teste.util.DBAUtil.getConnection(DBAUtil.java:46)
	at br.com.teste.dba.quartz.jobs.ExecutaBancoDado.execute(ExecutaBancoDado.java:166)
	at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)

Obrigado