Spanish Algún Ejemplo de como abrir una bases de datos en un servidor remoto con jRDC 2

EnriqueGonzalez

Well-Known Member
Licensed User
Longtime User
Hola Ricardo! yo te puedo ayudar pero me gustaria saber desde que parte te trabas.

Tienes ya un servidor remoto?
este servidor es un hosting compartido o un VPS?
o lo quieres hacer desde tu computadora?

Ya lo corriste desde tu computadora y lo probaste?
Que base de datos estas usando?

para empezar...
 

Ricardo Gonzalez Gaete

Member
Licensed User
Longtime User
Hola Ricardo! yo te puedo ayudar pero me gustaria saber desde que parte te trabas.

Tienes ya un servidor remoto?
este servidor es un hosting compartido o un VPS?
o lo quieres hacer desde tu computadora?

Ya lo corriste desde tu computadora y lo probaste?
Que base de datos estas usando?

para empezar...


Enrique, la base de datos es MySQL, esta en un servidor remoto, con IP del tipo DIN DNS, como dije tengo la aplicación corriendo, pero utilice la librería MYSQL y tiene problemas de perdida de datos y es inestable, la usan vendedores a terreno parea generar notas de venta o pedidos.

Estoy muy perdido no idea como se usa JRDC2
 

EnriqueGonzalez

Well-Known Member
Licensed User
Longtime User
Okey, Es imposible que una vez JRDC2 reciba los datos, estos se puedan perder.

Me imagino que no lo modificaste el proyecto inicial que circula en el foro. puedes hacer una prueba de conexion? asi:

http://tu.din.dns.com/test

Si esta conetando con tu base te va dar un "connection successful"

Me imagino que te intentas conectar desde una aplicacion android. Podrias pegar el codigo aqui donde haces esa conexion?
Lo primero que deberias de hacer es un ping a tu servidor para ver que tienes conexion si no, lo mejor es guardarlo temporalmente en el dispositivo y luego intentar otra vez.
 

Ricardo Gonzalez Gaete

Member
Licensed User
Longtime User
Enrique, amigo parece que no me explique bien.. la actual aplicación que tengo opera con la librería MYSQL, pero por ahí en un foro EREL recomienda no usar estas librerías para aplicación con alto movimiento porque produce inestabilidad y perdidas de datos, cosa que me esta pasando con mi aplicación.

Es por eso que Erel recomienda utilizar JRDC2, que no se como se usa, o implementa, esa era la pregunta, si alguien me podía guiar o compartir un código como se hace..

Gracias por tu tiempo...
 

EnriqueGonzalez

Well-Known Member
Licensed User
Longtime User
Hola Ricardo!

ya, ya entendi todo y creeme es mas sencillo de lo que crees.

Vamos paso por paso, en el servidor remoto tienes accesos administrativos? es decir puedes instalar java y correr programas? Si si, esa es tu primera tarea instalar la ultima version de JRE

La segunda tarea es compilar el archivo mas simple de JRDC2 para hacer pruebas de conexion, una vez lo compiles subelo a cualquier carpeta del servidor y abre una linea de comandos.

Como tienes acceso a este servidor externo? mediante rdp o ssh?
 

EnriqueGonzalez

Well-Known Member
Licensed User
Longtime User
Si es por RDP es todavia mas facil!

Si ya instalaste Java, lo que sigue es descargar lo siguiente:
https://www.b4x.com/android/forum/threads/remote-debugging-with-b4j-bridge.38804/#content

Esto es solo para que te sea mas facil debuggear.

Okey. abre un (que es windows o linux?) command line y ubica donde esta el b4j-bridge.jar

B4X:
java -jar b4j-bridge.jar

si estas en linux usa sudo.

de ahi abre el IDE con el ejmplo de erel de JRDC2 y ubica tu archivo de configuracion. (que debe estar en la carpeta files de tu proyecto) y configura estas lineas:

B4X:
#DATABASE CONFIGURATION
DriverClass=com.mysql.jdbc.Driver
JdbcUrl=jdbc:mysql://localhost/test?characterEncoding=utf8
User=root
Password=
#Java server port
ServerPort=17178

Es importante que en tu servidor abras el puerto que vas a poner en ServerPort para que tengas comunicacion ,este puerto NO es el de mysql (3306 por default) tiene que ser otro.

Me avisas?

con rdp..
gracias por tu tiempo y preocupación

No hay de que!
 

Ricardo Gonzalez Gaete

Member
Licensed User
Longtime User
Al ejecutar ejemplo de B4J

Waiting for debugger to connect...
Program started.
2017-11-18 00:09:24.382:INFO::main: Logging initialized @624ms to org.eclipse.jetty.util.log.StdErrLog
nov 18, 2017 12:09:24 AM com.mchange.v2.log.MLog
INFORMACIÓN: MLog clients using java 1.4+ standard logging.
nov 18, 2017 12:09:24 AM com.mchange.v2.c3p0.C3P0Registry
INFORMACIÓN: Initializing c3p0-0.9.5.2 [built 08-December-2015 22:06:04 -0800; debug? true; trace: 10]
Debug key in config file is set to true.
2017-11-18 00:09:24.715:INFO:eek:ejs.Server:main: jetty-9.4.z-SNAPSHOT
2017-11-18 00:09:24.749:INFO:eek:ejs.session:main: DefaultSessionIdManager workerName=node0
2017-11-18 00:09:24.749:INFO:eek:ejs.session:main: No SessionScavenger set, using defaults
2017-11-18 00:09:24.751:INFO:eek:ejs.session:main: Scavenging every 600000ms
2017-11-18 00:09:24.755:INFO:eek:ejsh.ContextHandler:main: Started o.e.j.s.ServletContextHandler@17d677df{/,file:///G:/JRDC/jRDC/Objects/www,AVAILABLE}
2017-11-18 00:09:24.765:INFO:eek:ejs.AbstractNCSARequestLog:main: Opened G:\JRDC\jRDC\Objects\logs\b4j-2017_11_18.request.log
2017-11-18 00:09:24.777:INFO:eek:ejs.AbstractConnector:main: Started ServerConnector@6043cd28{HTTP/1.1,[http/1.1]}{0.0.0.0:17178}
2017-11-18 00:09:24.777:INFO:eek:ejs.Server:main: Started @1020ms
Emulated network latency: 100ms
jRDC is running (version = 1.1)
 

EnriqueGonzalez

Well-Known Member
Licensed User
Longtime User
Todo eso es normal incluso cuando aparecen en letras rojas. Quiere decir que todo está corriendo bien.

Lo corriste remotamente con el b4j bridge?

Ahora escribe en tu navegador la siguiente

Http://tu.din.dns:puerto/test

Que te sale???
 

Ricardo Gonzalez Gaete

Member
Licensed User
Longtime User
Hola Enrique se me olvido comentar que todo esto lo he e hecho en mi maquina de desarrollo, todavía no pruebo en el server remoto, lo hare hasta que tenga mejor dominio de esto, lo bueno que de a poco he ido entendiendo, pero me falta mucho, de todas manera te agradezco mucho por tu tiempo y la disponibilidad para poder ayudarme.
 

EnriqueGonzalez

Well-Known Member
Licensed User
Longtime User
Hola!

Jrdc2 es realmente muy fácil. Es sólo un protocolo http con nombre bonito. Una vez logres conectarte a la base. Prueba internamente con tu celular que puedes entrar. (O cualquier dispositivo rwmoto)

Es decir desde tu celular entra al link formado como ya lo mencioné arriba.

También puedes modificar el jrdc2 para que puedas meterle query y non querys sin tener que recompilar.

Haz pruebas y si te trabas en algo avísame.
 
Top