De nuevo, mejorando lo que hay.
La extensión de Time mucho mejor así:
class Time
def method_missing(method_name, *args)
cadena = self.strftime('%Y/%m/%d')
return cadena.send(method_name, *args)
end
end
Gracias Javi por tu ayuda.
Salud¡
viernes, 14 de septiembre de 2007
Memory leaks revisited
Qué hay de nuevo?
He tenido que apretar un tornillo que se había quedado suelto con el tema del cambio en el acceso a sqlserver. Ocurre que, con ADO.rb, los datos de tipo datetime eran devueltos como Time si se obtienen a través de un modelo o como String si se obtienen mediante una query directa a la base de datos. Con ODBC siempre son devueltos como Time.
Por ello he tenido que extender el objeto Time para que no casquen los accesos con [], por ejemplo, en los casos en los que ADO.rb retornaba String.
En environment.rb (o mejor en algún fichero incluido en éste):
class Time
def [](range = nil)
return self.strftime('%Y/%m/%d')
end
end
Salud¡
He tenido que apretar un tornillo que se había quedado suelto con el tema del cambio en el acceso a sqlserver. Ocurre que, con ADO.rb, los datos de tipo datetime eran devueltos como Time si se obtienen a través de un modelo o como String si se obtienen mediante una query directa a la base de datos. Con ODBC siempre son devueltos como Time.
Por ello he tenido que extender el objeto Time para que no casquen los accesos con [], por ejemplo, en los casos en los que ADO.rb retornaba String.
En environment.rb (o mejor en algún fichero incluido en éste):
class Time
def [](range = nil)
return self.strftime('%Y/%m/%d')
end
end
Salud¡
jueves, 13 de septiembre de 2007
Memory leaks conectando a sqlserver
Danimata al aparato.
Llevo N días viendo cómo una de nuestras aplicaciones, que trabaja contra sqlserver, padece de alzehimer, quicir, pierde memoria con cada petición.
Mi conexión era la siguiente:
adapter: sqlserver
database: dddddd
username: uuuuuu
password: xxxxxx
host: hhhhhh
Mi amigo Xavi me ha pasado un par de links en el que esto mismo le ocurre aquí y allá a otras personas que trabajan contra sqlserver a través de ADO.rb de la librería ruby-dbi. Recomiendan pasarse a ODBC.
He creado el origen de datos y mi conexión ha quedado como sigue:
adapter: sqlserver
database: dddddd
username: uuuuuu
password: xxxxxx
host: DBI:ADO:Provider=SQLOLEDB;Data Source=midatasource;
Lo he hecho, y nada de nada, el alzehimer continúa. Claro que no me había deshecho totalmente de ADO.rb. De nuevo Xavi con la solución. Con lo que me queda la siguiente conexión:
adapter: sqlserver
mode: odbc
dsn: my_dsn
database: dddddd
username: uuuuuu
password: xxxxxx
Et voilá¡ Todo funcionanado sin pérdidas de memoria y con la sensación de que las conexiones funcionan mejor y más rápido.
Como siempre, salud¡
Llevo N días viendo cómo una de nuestras aplicaciones, que trabaja contra sqlserver, padece de alzehimer, quicir, pierde memoria con cada petición.
Mi conexión era la siguiente:
adapter: sqlserver
database: dddddd
username: uuuuuu
password: xxxxxx
host: hhhhhh
Mi amigo Xavi me ha pasado un par de links en el que esto mismo le ocurre aquí y allá a otras personas que trabajan contra sqlserver a través de ADO.rb de la librería ruby-dbi. Recomiendan pasarse a ODBC.
He creado el origen de datos y mi conexión ha quedado como sigue:
adapter: sqlserver
database: dddddd
username: uuuuuu
password: xxxxxx
host: DBI:ADO:Provider=SQLOLEDB;Data Source=midatasource;
Lo he hecho, y nada de nada, el alzehimer continúa. Claro que no me había deshecho totalmente de ADO.rb. De nuevo Xavi con la solución. Con lo que me queda la siguiente conexión:
adapter: sqlserver
mode: odbc
dsn: my_dsn
database: dddddd
username: uuuuuu
password: xxxxxx
Et voilá¡ Todo funcionanado sin pérdidas de memoria y con la sensación de que las conexiones funcionan mejor y más rápido.
Como siempre, salud¡
Suscribirse a:
Entradas (Atom)