February 23, 2012, 2:00 am

Blog de KTECHO CONSULTING

Oferta de empleo

There are no translations available.

En KTECHO CONSULTING estamos en proceso de ampliar plantilla. Si estás buscando un cambio de trabajo o conoces a alguien que esté buscándolo, quizá este post te pueda interesar.

Antes de nada, ¿por qué trabajar en KTECHO CONSULTING? Pues porque aquí podrás aprender y practicar diferentes tecnologías y lenguajes de programación en entornos heterogéneos sin encasillarte en una sola tecnología aburrida. ¿Has oído hablar de Perl Catalyst o de ExtJS? ¿Sabías que una aplicación .NET puede desplegarse dentro de una base de datos Oracle para ser usada como un PL/SQL más?

Ser consultor en KTECHO CONSULTING es algo más que programar: es escuchar al cliente y proponerle soluciones para sorprenderle, usando para ello las últimas tecnologías disponibles.

Nuevas tecnologías

 

Echa un vistazo a los requisitos, y si los cumples, envía tu curriculum a This e-mail address is being protected from spambots. You need JavaScript enabled to view it .


¿Qué hacemos en KTECHO CONSULTING?

En KTECHO CONSULTING, nuestra principal actividad es la implantación de productos de partners y el soporte a Producción de dichos productos. Además, también realizamos otros tipos de proyectos:

  • Desarrollos a medida
  • Portales web
  • Aplicaciones móviles
  • Servicios de consultoría global

 

¿Qué buscamos para este puesto?

Buscamos un Consultor que realice tareas de programación, adaptación e implantación de productos en varios lenguajes (principalmente Java, Perl y JavaScript con jQuery o ExtJS). Además, es conveniente tener habilidades de comunicación, ya que será necesario dar soporte al usuario final para resolver los posibles problemas que puedan surgir.

El trabajo consistirá en adaptar los productos de nuestros partners basándonos en los requerimientos funcionales del cliente y dar soporte correctivo y evolutivo a dichos desarrollos. Para ello, es necesario ser una persona motivada, responsable, autosuficiente y polivalente, sin miedo a enfrentarse con nuevas tecnologías o con tecnologías actuales usadas de forma diferente.

 

Requisitos:

  • Tener espíritu de Consultor: ser responsable, organizado, autosuficiente y polivalente. Saber perseguir un problema hasta encontrar su solución y tener un trato amable con el cliente.
  • Saber manejarse en entornos Unix / Linux.
  • Haber usado alguna herramienta de control de cambios: git, svn, cvs, Harvest, ...
  • Flexibilidad para usar y combinar distintos lenguajes de programación.

 

Conocimientos deseables:

Cuantos más de estos cumplas, más posibilidades tendrás de empezar a trabajar con nosotros:

  • Java / J2EE
  • Perl (Catalyst Framework, Moose, DBIx::Class, ...)
  • Javascript (Ajax, jQuery, ExtJS, ...)
  • Conocimientos de AIX y Mainframe
  • Shell Scripting
  • Herramientas de construcción: ant, nant, msbuild, ...
  • Oracle (PL/SQL, Toad, ...) y MySQL
  • Conocimientos de PHP y MySQL
  • Diseño de interfaces de usuario
  • Se valorarán otros conocimientos: servidores de aplicaciones (WAS, WebLogic, Catalyst, ...), trabajo con Eclipse, herramientas de pruebas, ...

Oracle COM Automation problems

There are no translations available.

Just a quick sentence to summarize the entire post: Oracle COM Automation doesn't work.

¿What is Oracle COM Automation? From the Oracle docs: "enables you to use Component Object Model (COM)-based components to customize and enhance the functionality of the Oracle database on Windows operating systems, [...] providing a mechanism to manipulate COM objects through either PL/SQL or Java". You can basically get or set the value of an exposed property and Invoke a method on an object.

Oracle COM Automation

We started developing using Oracle COM Automation because a customer needed to access a COM interface from Oracle. We made some basic testing and after a lot of trouble, we end up learning that the solution doesn't work. Here's why:

1- It has a major flaw. As explained before, you can use getProperty to get an exposed property's value. Well, if a property has a null/blank value, getProperty will give you the last value returned by a getProperty. Just as this one in pseudocode:

* Property A = 'green'
* Property B = 'yellow'
* Property C = ''  (blank, empty)
 
getProperty('A') --> 'green'
getProperty('B') --> 'yellow'
getProperty('C') --> 'yellow'
getProperty('A') --> 'green'
getProperty('C') --> 'green'

 

As you may think, this renders the entire solution unusable. Only if you can be 100% sure that all the properties have a value, the solution can be used. This was discussed at Oracle forums here.

Even when Oracle COM Automation is a .dll (orawpcom10.dll, orawpcom11.dll, ...), it has a small part of PL/SQL code. We tried to fix this bug digging into the visible part of the code, but it seems that the problem is in the .dll part and there is nothing we can do to fix it. Just this point makes us think if there is anyone in the world using Oracle COM Automation with this important problem.

2- It leaks memory. Each time you make a call to some COM Automation function, being it "invoke", "getProperty", "setProperty", etc. it seems the call is made through "extproc.exe". This process starts increasing the RAM used and I've seen it using more than 1 Gb RAM, and that's destroying all the COM objects at each invocation and weird things like that.

We don't know for sure if the problem is COM Automation related or "extproc.exe" related, but we've used "extproc.exe" several times (deploying .NET code into Oracle) and the process seems to manage its memory automatically. We can see as it increases its memory used and then it lowers it, but not with COM Automation. Newly, we can think this problem is COM Automation related and it could be a problem if you're on a server that gives 24x7 service and you can't reboot it frequently.

3- Lack of documentation. Not a "it doesn't work" thing, but the entire solution is very badly documented. It's being included from at least Oracle 8, but the docs are not complete, sometimes misleading and there are almost no examples around the Web besides an instructive post in DevX written by Natalka Roshak.

Oracle provides some example files of interaction between PL/SQL code and some Microsoft Office apps via COM interface, but that examples are extremely simple, not exploiting some features you're going to need while interacting with more complex code, and the most important part: that examples doesn't trigger the bugs mentioned in point 1 and 2.