Enterprise JavaBeans 3.1, sixth edition, available now

I just noticed that the sixth edition of the book Enterprise JavaBeans, updated to the specification 3.1, from O’Reilly, by Andrew Lee Rubinger (JBoss) and Bill Burke (JBoss), is now available.
I am looking forward to reading it.
The book does not focus on any specific application server. As mentioned in the introduction :

“Because the focus of this book is on developing vendor independent EJB components and solutions, we have stayed away from proprietary extensions and vendor-dependent idioms wherever possible. You can use any EJBcompliant server with this book, but you should be familiar with your server’s specific installation, deployment, and runtime-management procedures to work with the examples.”

Continue reading

Difference between ETL and ELT

Today I heard an interesting answer to the question : what is the difference between ETL and ELT ?
The answer is : in ETL the transformations are processed by the ETL tools while in ELT the transformations are processed by the target datasources (RDBMS). I guess that the rising scalability of databases allows this kind of data integration to be possible.
Continue reading

Repair the TCP/IP protocol under Windows

Lately, I have had problems connecting to the internet. The connection would last for 2, 3 or 5 hours before it would fail again.
After trying many methods, I found out that the problem was the TCP/IP protocol itself.

There is a way to repair a damaged TCP/IP protocol, which is a core component of Windows.
Under DOS, with administrator rights, type in the following commands :
Continue reading

How to use customized entities

CRM Dynamics contains native entities (contact, account, opportunity, appointment …).
The CRM SDK API already contains specific classes for these native entities.
It is possible to create customized entities. To use them in programs, i found that there
are two options for that : either use crm webservice or use the CRM SDK API. With the latter option, you have to use Dynamic entity to access your custom entities.
Continue reading

Steps to run a plug-in for the Dynamics CRM in debug mode

Here are the steps to run a plug-in in debug mode
1) In Visual Studio (BIDS), build the project
2) Copy the generated DLL file and the PDB file (they are located in the project folder, under bin\Debug) to the CRM assembly folder : C:\Program Files\Microsoft Dynamics CRM\Server\bin\assembly
3) Deploy or redeploy the plug-in using the Plug-in registration tool
Continue reading

Show the module positions of a Joomla website

I have been playing with Joomla recently. As a beginner there is a tip that I find useful.
Although it is a tip that is quite well-known (Google brings more than 20 000 results for it), I will still mention it here.
If you want to know the module positions of a Joomla website, add the parameter ?tp=1 to the URL. For instance :

http://www.mysite.com/?tp=1

More Joomla secrets can be found here : http://docs.joomla.org/Joomla_secrets

Running 2 JBoss 6.0.0 servers on one machine

Today I wanted to experiment some load balancing with JBoss and Apache. For that I needed to run 2 JBoss servers on one single machine.
Server 1 is installed in D:\jboss-6.0.0.20100721-M4-Server1
Server 2 is installed in D:\jboss-6.0.0.20100721-M4-Server2

Of course if you run both servers at the same time, you will get errors such as “address already in use” because of services running on the same ports in both servers.
It turns out that you need to modify the D:\jboss-6.0.0.20100721-M4-Server1\server\default\conf\bindingservice.beans\META-INF\bindings-jboss-beans.xml file to avoid same port conflicts.
So I added 100 to all ports defined in that file, for server 1.
For server 2, I only modified the HTTP WEB SERVER port because port 8080 is already taken by Oracle.

There is no need to modify the D:\jboss-6.0.0.20100721-M4-Server1\server\default\deploy\jbossweb.sar\server.xml file.

Running multiple instances of a single JBoss server is a different story. More information can be found here (ServiceBindingManager) and here .

First baby steps with Android OS

I do not have a phone that runs Android but i am curious about this OS created by Google. That is something possible with an emulator.
This link has a nice and quick tutorial to get started with the emulator for PC.

Press Ctrl-F11 to switch between portrait mode and landscape mode.

Also, this other tutorial explains how to install the Android Market in the emulator, so you
can install new apps or games and test them.

Continue reading

Control and data flows in SSIS

I created this package while working with SSIS for the first time.
The objective of this package is to extract data from 3 flat files in .txt format and perform some controls before inserting the data into 3 tables,
one table (destination) for each file (source).
These files are Territoires.txt, Personnes.txt and Ventes.txt. The data is extracted in that order.
The tables are SimuTerritoires, SimuPersonnes and SimuVentes.
These controls aim to :
– check if the SalesQuota is null
– check if the TotalDue is empty. If so, assign the value 0
– check the  Orderdate value. If it is empty, assign the value 01/01/2001
– check the referential integrity. In the Ventes.txt file, if the Territory ID is not found in the table SimuTerritoires, then reject the row.

Inside my script component, I have a very simple method which processes every row.
The Microsoft Visual C# 2008 code for that method is :

 public override void Input0_ProcessInputRow(Input0Buffer Row)
    {
        if (Row.OrderDateConverti_IsNull == true)
        {
            Row.OrderDateConverti =
            DateTime.ParseExact("01/01/2001", "MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture);
        }
    }

The data of the files comes originally from the AdventureWorks sample database (Territories, Persons and Sales tables). You can download the package file, Simulation2.dtx, here.

Here are a few screenshots :

Continue reading

My book on EJB 3 is now on sale

I received an email from the editor informing me that the book is now printed and will be available in bookstores next week (from July 5th, 2010).

It is already available for sale on Amazon and ENI.

An online version is also available.

Here is the cover of the book :

SO3EJB_max

No direct access for JSP under WEB-INF

I have been asked several times in the past whether files under WEB-INF can be accessed or not.
It is indeed somewhat confusing. The answer is YES and NO.

You cannot access them directly.

For instance the following URL would give a 404 error :
http://localhost:8085/myWebApp/WEB-INF/test.jsp

But you can access test.jsp indirectly.
For instance the following JSP, callTest.jsp, contains code that includes a call to the somewhat protected JSP test.jsp :

<%@ include file="WEB-INF/test.jsp" %>

The URL to call the JSP is :
http://localhost:8085/myWebApp/callTest.jsp