Skip to main content

Posts

Popup Message from Server to Clients using Socket Programming in Adempiere

It will be more convenient for the client if he get a popup notification at the time of order completion. We achieved this using Socket Programming in ADempiere. In Socket Programming, messages sends through ports using port number. The message send from the server is identified by the client port and given to a popup window. A column named IsNotified added to AD_Session Table and it’s value is set to ' Y'  by default . When an order is completed, this column value will change to ' N' . Clients with IsNotified value 'N' will get the popup notification. The popup will open in every minute and elapse automatically after 10 seconds until the client closes it manually. This time IsNotified column value will change to 'Y'. So that particular client won’t get any popup notification further. The following classes added to ADempiere: •         org.compiere.process.Notifier.java •         org....

System requirements for ADempiere ERP Implementation

 In a production environment such a simple installation may not be sufficient, especially when there are more than a handful of concurrent users. Performance demands will require more attention to the architecture of the installation. In a production environment, it is highly recommended to separate the servers, with the  Application Server  and  Database Server  on different machines. http://wiki.adempiere.net/System_Requirements COMPUTER HARDWARE - Recommended configuration for above 100 users Server : Server class hardware with Dual Socket 2.xG and 4 Core dedicated                             300GB 15K RAID Protected                             16 GB RAM, Page fi...

Port is already in use during the ADempiere Server Starts

     Some times, there will be few port conflicts with the ADempiere server with any other applications running on the same. We had a same kind conflict few days  back. Our internal server web port was 8080, as normal. and it was forward to 8888 for publishing the web application to the internet. During a server machine restart, the ADempiere server was reluctant to execute saying port 8080 is already in use.      The culprit was the Ammy Admin this time. For the remote access we were using the ammy admin in the server machine. So it was engaging the 8080 port.  There are TWO solutions for this.  1. Kill the application which engaging the web server port. 2. Change the web server port from 8080 to any other. The following are the simple steps to find out the engaged ports in the machine and killing those services. 1. netstat -b It will list down all the established communications and corresponding port. We will ge...

ADempiere Tips

1. Application theft, Database theft KeyStore Password is  the answer for the application theft. If email has set, you will get an email alert if server runs. 2. User Privileges Several user and Role privileges for window, process, workflow etc. Personal Lock 3. Busy Connection issue Try to use the default DB.java methods to execute your query. If you want to use the PreparedStatement, be sure you have closed the ResultSet and Connection String using ' DB.close(rs,pstmt) ;' in the finally block of your try 4.  Default Reports in a window is not active? Then, check any Report is mapped in the field Process of corresponding Tab of that window. The connected report is invoked with that button with different print formats(if defined!). 5. Slow down issue    1. http://www.chuckboecking.com/adempiere-idempiere-performance-tuning-scale-ability/    2. http://www.chuckboecking.com/adempiere-idempiere-high-volume-warehouse-locato...

MySQL Clustering

MySQL Cluster is a technology for automatically shared database management system. i.e this technology create two or more replicas of the same data base in different nodes.  Basically mysql clustering is asynchronous communication technology. The basics steps for establish mysql clustering is given below: Step 1:  Download supported version of mysql clustering installation zip file from       http://www.mysql.com/downloads/cluster/ Step 2:   Extract the zip file and copy the contents inside the folder to  c:\Users\user1\mysqlc Step 3: Run the command prompt window as administrator role, And execute the following commands for create clustering directories     C:\Users\user1> mkdir my_cluster my_cluster\ndb_data my_cluster\mysqld_data my_cluster\conf C:\Users\user1> mkdir my_cluster\mysqld_data\mysql my_cluster\mysqld_data\ndbinfo my_cluster\mysqld_data\performance_schema Step 4: Create confi...

Schedule Backup using DBExport from Adempiere ERP in Windows OS

Scheduled Backup from Postgres using pgagent is possible , but the size of Backup file generated is very large compared to that generated from Adempiere using DbExport.bat. Creating Backup from adempiere by scheduling running of RUN_DBExport.bat from adempiere periodicaly using windows task scheduler is a viable solution. There are few bat files that need to be changed * E:\Adempiere\utils\myDBcopy.bat * E:\Adempiere\utils\RUN_DBExport.bat * E:\Adempiere\utils\postgresql\DBExport.bat In the above case  "E:\Adempiere\" is the path of Adempiere home where it was build. Make necessary changes as needed. NB: The environment variables are to be set properly in "Computer>properties>Advanced System Settings>Advanced>Environment variables "so as to make the following steps work. First file  to be changed is E:\Adempiere\utils\myDBcopy.bat Here change "set DATETIME=%date:~6,4%%date:~3,2%%date:~0,2%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%...

Deploy ADempiere reports as attachment

You can now deploy the jasper report source (.jrxml) or compile file (.jasper) as attachment  to the jasper report process . Use the special syntax  attachment:reportFileName  ( for e.g, attachment:standalone.jrxml ) to indicate the jasper report file that should be loaded from the process's attachment. If subreport and properties resource file is use, you need to upload those as attachment to the same process as well.