Setting up pre-built Subversion Virtual Machine

Download pre-built Ubuntu SVN VMware image here

Default user / password: svnadmin / svnpass

Add a new project:
sudo svnadmin create /var/svnroot/<Your-Project-Name>

Configure SVN:
sudo nano /var/svnroot/<Your-Project-Name>/conf/svnserve.conf 

Add users and passwords:
sudo nano /var/svnroot/<Your-Project-Name>/conf/passwd

Manage user rights:
sudo nano /var/svnroot/<Your-Project-Name>/conf/authz 

Use Webmin to modify network settings:
https://<IP-Address>:10000

Reboot VM:
sudo shutdown -r now

Read the rest of this entry »

Leave a Comment

Limit number of concurrent MDB instances for JMS

For Stateless bean under Weblogic (weblogic-ejb-jar.xml):

<pool>
<max-beans-in-free-pool>1</max-beans-in-free-pool>
<initial-beans-in-free-pool>1</initial-beans-in-free-pool>
</pool>

For Stateful bean under Weblogic (weblogic-ejb-jar.xml):

<stateful-session-cache>
<max-beans-in-cache>1</max-beans-in-cache>
</stateful-session-cache>

For Entity bean under Weblogic (weblogic-ejb-jar.xml)
<pool>
<max-beans-in-free-pool>1</max-beans-in-free-pool>
<initial-beans-in-free-pool>1</initial-beans-in-free-pool>
</pool>

and instance cache size
<entity-cache>
<max-beans-in-cache>1</max-beans-in-cache>
</entity-cache>

Leave a Comment

WebLogic + JMS Example

Setting up JMS in WebLogic

  • Open the Weblogic Console Window:
    e.g. http://localhost:7001/console
  • Create a persistent JMS store for persistent messages:
    e.g. MyDomain > Services > JMS > Stores
  • Create a new JMS Server:
    e.g. MyDomain > Services > JMS > Servers
  • Create a new JMS Connection Factory:
    e.g. MyDomain > Services > JMS > Connection Factories
  • Create a new JMS Queue

Implement a Message-Driven-Bean (MDB)

  • Create new EJB Project in Eclipse

public class MyMessageBean implements MessageDrivenBean, MessageListener {
//
private Logger log = SystemLogger.getDebugLogger(MyMessageBean.class.getName());
//
private MessageDrivenContext messageContext;
//
public MyMessageBean() {
}
public void ejbRemove() throws EJBException {
messageContext = null;
}
public void setMessageDrivenContext(MessageDrivenContext messageContext)
throws EJBException {
this.messageContext = messageContext;
}
public void onMessage(Message message) {
// do what ever you want to do with the message
log.debug("Message Driven Bean got message: " + message);
}
public void ejbCreate() {
}
}

Add Message-Driven-Bean to Deployment Descriptors

  • ejb-jar.xml:


<enterprise-beans>

<message-driven>
<ejb-name>My</ejb-name>
<ejb-class>com.mydomain.ejb.MyMessageBean</ejb-class>
<transaction-type>Container</transaction-type>
<message-driven-destination>
<destination-type>javax.jms.Queue</destination-type>
</message-driven-destination>
</message-driven>
</enterprise-beans>

<assembly-descriptor>

<container-transaction>
<method>
<ejb-name>My</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>

  • weblogic-ejb-jar.xml


<weblogic-enterprise-bean>
<ejb-name>My</ejb-name>
<message-driven-descriptor>
<destination-jndi-name>com.mydomain.jms.mydomainJmsQueue</destination-jndi-name>
</message-driven-descriptor>
<enable-call-by-reference>True</enable-call-by-reference>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>

Implement JMS Client
...
private void sendJms(String message) {
try {
Context ctx = new InitialContext();
QueueConnectionFactory connectionFactory = (QueueConnectionFactory)         ctx.lookup("com.mydomain.jms.mydomainJmsConnectionFactory");
QueueConnection qconn = connectionFactory.createQueueConnection();
QueueSession qsession = qconn.createQueueSession(false, QueueSession.DUPS_OK_ACKNOWLEDGE);
Queue queue = (Queue) ctx.lookup("com.mydomain.jms.mydomainJmsQueue");
//
QueueSender sender = qsession.createSender(queue);
Message msg = qsession.createTextMessage(message);
qconn.start();
sender.send(msg);
log.debug("JMS Message send...");
sender.close();
qsession.close();
qconn.close();
} catch (JMSException ex) {
SystemLogger.getExceptionLogger(1).error("JMSException during sending JMS message.",ex);
} catch (NamingException ex) {
SystemLogger.getExceptionLogger(1).error("NamingException during sending JMS message.",ex);
}
}

Leave a Comment

Eclipse + Tomcat 5.5 + JDBC + Oracle 9

Pre-Condition

Setup Tomcat Management User

To use the Tomcat Management tools, you must create a user with “admin” and “manager” roles. To do this, follow these steps:

  • Open the tomcat-users.xml file in the CATALINA_home/conf directory with a text editor.
  • In this file, add the following entries to create the “admin” and “manager” roles:
    <role rolename="manager"/>
    <role rolename="admin"/>
  • In addition, add the following entry to create the “admin” user:
    <user username="admin" password="admin" fullName="Administrator" roles="admin,manager"/>
  • Save and close the file

Add JDBC driver support to Tomcat

  • Download the latest JDBC Driver from Oracle (e.g. here)
  • Copy jar to $CATALINA_HOME/common/lib
  • Add a context.xml file to the Application’s META-INF directory:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
...
<Resource
name="jdbc/myoracle"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
driverClassName="oracle.jdbc.OracleDriver"
username="<<myUsername>>"
password="<<myPassword>>"
url="jdbc:oracle:thin:@<<myOrcacleServer>>:<<myOrcaclePort>>:<<myOracleService>>"
maxWait="-1"
maxActive="20"
maxIdle="10"
validationQuery="SELECT 1+1 from dual"/>
...
</Context>

  • Add the resource-ref tag to the Application’s WEB-INF directory (not mandatory):


<resource-ref>
<description>Oracle Datasource</description>
<res-ref-name>jdbc/myoracle</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>

  • Add JDBC-Example code to Servlet-Example:

Context initContext;
try {
initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/myoracle");
Connection conn = ds.getConnection();
DatabaseMetaData meta = conn.getMetaData();
response.getWriter().write("<html><body>");
response.getWriter().write("Driver Name : "+meta.getDriverName()+"<br/>");
response.getWriter().write("Driver Version : "+meta.getDriverVersion()+"<br/>");
Statement statement = conn.createStatement();
String query = "select * from LOGIN_USER";
//
ResultSet resultSet = statement.executeQuery(query);
//
while (resultSet.next()) {
response.getWriter().write(resultSet.getString(2)+"<br/>");
}
// close connection
conn.close();
conn = null;

Leave a Comment

Versionsnummer eines Exchange Servers anzeigen

“Da eine Exchange-Organisation aus mehreren Exchange-Servern bestehen kann, müssen Sie sich im Exchange-Manager zu demjenigen Exchange-Server hinhangeln, dessen Versionsstand Sie ermitteln wollen. Diesen Server klicken Sie mit der rechten Maustaste an und öffnen dessen Eigenschaften. In der Registerkarte Allgemein wird die Exchange-Version und das installierte Service Pack angezeigt. Nach der Installation des Service Packs 2 steht dort Version 6.5 Service Pack 2.”

(Zitat – unbekannt)

Leave a Comment

E-Mails in Outlook als Verteilergruppe versenden

Motivation
Der Support-Mitarbeiter einer Firma, will mit Outlook für die Verteilergruppe “Support” E-Mails versenden können, es soll beim Empfänger also support@firma.de als Absender angezeigt werden.

Lösung
Hier findet man eine Anleitung zum Versenden von Mails als Verteilergruppe (siehe Punkt: “Senden als… Verteiler”).

Mögliches Teil-Problem
Reiter “Sicherheit” unter Verteiler nicht sichtbar?

Lösung des Teil-Problems
Es muss die MMC geöffnet und das Snap-In “Active-Directory-Benutzer und Computer” geöffnet werden.
Unter “Ansicht” muss “Erweiterte Funktionen” aktiviert sein. Nun können die Sicherheitseinstellungen z.B. unter: domäne.local/MyBusiness/Distribution Groups/VerteilerXYZ->Eigenschaften->Sicherheit geändert werden. Hier wird nun der Benutzer oder die Gruppe hinzugefügt, die für den jeweiligen Verteiler senden darf. Am client ist kein gpupdate notwendig.

Leave a Comment

Clone a damaged hard drive

Problem
Hard drive read/write fault error(s).
Solution
Get a new hard drive and clone data as soon as possible!
  • get a hard drive of same size and type (e.g. 80 GB, S-ATA)
  • attach new hard drive as slave drive
  • download and burn Knoppix CD-Rom
  • boot from Knoppix CD-Rom
  • on console type: dd_rescue -A -v /dev/sda /dev/sdb
  • -A = fill damaged blocks with 0, -v = verbose

Leave a Comment

System.out.println(”Hello, world!”);

System administrators, web designers, developers and project managers…welcome to Codeseeker’s Weblog! Postings will be available in either german or english.

Leave a Comment