Dec 23, 2009

IBM WebSphere Application Server Network Deployment V7.0 Core Administration (000-377)

IBM WebSphere Application Server Network Deployment V7.0 Core Administration (000-377) « Joseph Amrith Raj's Websphere Blog

Nov 16, 2009

Packt IBM Websphere eXtreme scale 6 book

Hello Guys,

i’ve got an opportunity to review the book on IBM Websphere eXtreme. I’ll post the detailed review details once i complete the review.  See the book preview

Packt IBM Websphere eXtreme sclae book


If you would like to see more details on how the book was written, take a look at one of the chapters from the book here: http://www.packtpub.com/files/7443-getting-started-with-ibm-websphere-sample-chapter-7-the-datagrid-api.pdf


IBM WebSphere eXtreme Scale is the IBM in-memory datagrid product. It can be described as a fully elastic memory based storage grid. It virtualized the free memory of a potentially large number of Java virtual machines and makes them behave like a single key addressable storage pool for application state. Applications can view this as a network attached storage medium. It is key addressable and applications can store a value at a key. Data within the grid can be replicated to achieve fault tolerance and protect against data loss. It can also be written to relational databases and any other persistence backend using write through or write behind technologies. Data can be automatically pulled from a backend such as a relational database or enterprise application if it isn’t present in the grid.

IBM WebSphere eXtreme Scale can be used to access data from the grid significantly faster than from a traditional database. Applications which have a partitioned data model or data models that follow the constrained tree scheme approach will see linear scaling with products like this. IBM testing has shown that can be scaled out to hundreds of physical servers processing millions of transactions per second. Each server adds more CPU, memory capacity and network capacity to the grid for a linear scale up.

IBM WebSphere eXtreme Scale can be used with just a Java 2 SE JVM or can be used with an application server such as any version of IBM WebSphere Application Server from 6.0.2.x and higher.

It is one of the foundation products for the IBM Extreme Transaction Processing solution for scale out processing architectures. It is a complement the big iron transaction processing systems that have been available for decades in the form of high end SMP servers such as the IBM System z mainframe.

This technology allows very large memory stores to be realized. Terabytes of data can be kept in such a grid and then accessed from client applications that share the data within the grid. The data can be interacted with using the IBM WebSphere eXtreme Scales transactional client.

Installing FixPacks (silent installation)

Before you begin
—————–
- The most recent version of the Update Installer needs to be installed on a target system locally.
- Use the Update Installer program from the same user ID that installed the product that you are updating.
Procedure
———-
Note: updi_root = Update installer root directory
1. Download the required fix pack from the official IBM support Web site into the updi_root/maintenance directory.
2. Ensure that all running processes have been stopped.
3. Edit a response file. The one located at the bottom of the pane can be used as an example. There are also sample response files found in the updi_root/responsefiles directory.
1. Specify the location of the product to the response file.
2. Specify the choice of install maintenance in the response file. For example: -W update.type=”install”
3. Add the maintenance location where packages can be found to the response file.
When you install the fix pack, certain logic is used to determine which packages to install. To find out more, refer to “Logic that the Update Installer uses for system recommended installations,” found at the bottom of this topic.
4. Run the Update Installer.
For example:
[Windows]       update.bat -silent -options “responsefiles/file_name”
[This information only applies to Version 6.1.0.9 and later running on the Microsoft Windows Vista operating system.] [Fix Pack 9 or later]
update.exe -silent -options “responsefiles/file_name”
[AIX] [HP-UX] [Linux] [Solaris]       ./update.sh -silent -options “responsefiles/file_name”
5. Review the log file to verify maintenance has been installed successfully. The log can be found at app_server_root/logs/update/maintenance_package.install.
One of the following results will appear in the log.
INSTCONFSUCCESS : The operation was a success.
INSTCONFPARTIALSUCCESS: The operation was partially successful, refer to the log for more details.
INSTCONFFAILED: The operation failed, refer to the log for more details.
Sample Response file
=====================
################################################################################
#
# This section describes how to apply a maintenance package using the full
# filename specifications to be installed.
# There are three ways you can specify installing a maintenance package.
# They are the following:
# (Use the examples below and edit where appropriate.)
#
# 1. Specify a single maintenance package full filename to be installed.
#
#    For example:
# -W maintenance.package=”/opt/IBM/WebSphere/AppServer/UpdateInstaller/maintenance/PQ20029.pak”
#
# 2. Specify a multiple maintenance package full filename to be installed.
#    -  Use a semicolon to separate the full filename specifications.
#    -  Update Installer will install the latest applicable maintenance in the order ## listed.
#
#    For example:
#    -W maintenance.package=”/tmp/maintenance/PK31008.pak;/tmp/6.1.0-WS-WAS-FP0000001.pak”
#
# 3. Specify a full folder name that contains the maintenance packages.
#    Update Installer will install the latest applicable maintenance in the order
# listed in the folder.
#
#    For example:
# -W maintenance.package=”/opt/IBM/WebSphere/AppServer/UpdateInstaller/maintenance”
#
# Notes: If no package is specified, maintenance packages from the default folder
# (such as, UpdateInstaller_HOME/maintenance )
#        will be installed.
# -W maintenance.package=”/opt/IBM/WebSphere/AppServer/UpdateInstaller/maintenance/6.1.0-WS-WAS-FP0000001.pak”
################################################################################
#
# Prerequisite Checking
#
# The update installer checks the system for prerequisites by default.
#
# Uncomment the following option to notify the installer to continue with
# the update and log the warnings even though prerequisite checking
# failed.
#
#-OPT disableNonBlockingPrereqChecking=”true”
################################################################################
#
# Used to input the product install location that will be updated.
#
# such as, -W product.location=”/opt/IBM/WebSphere/AppServer”
#
# Note: The product install location should always been specified, and it should
# always be the full path.
#
-W product.location=”/opt/IBM/WebSphere/AppServer”
################################################################################
#
# Do not edit these values.
#
-W update.type=”install”

Oct 8, 2009

Resume writing for IT/Software professionals

The most important thing in searching a job is your resume/CV. Most of the time we end up copying from others :-). So, i just wanted to share with all of you, how to write your own resume in a better way.
5 Points to remember:
————————–
1) Resume will go to hands of recruiters first, they decide wether to forward to technical team or not
2) Keywords
3) Write what you can offer to the company not what you want
4) make it short (max 2 pages)
5) Make everything readable and clear
Resume order template
—————————
Introductory Statement
Summary of your experience
Skills
Experience
Education and others

Resume Content
——————-
1. Introductory Statement
There are 2 types of initial introductions: The objective for entry level professionals and the headline statement for experienced professionals.
Objective Statement - This introductory statement is primarily used by entry level professionals to target positions in which the job seeker has no experience or limited experience. In this case, you are building a statement that tells the reader what type of position you are targeting.
Headline Statement - This statement should be an overall breakdown of your career experience. It should be a simple, yet compelling statement that clearly explains what you bring to the table.
2. Summary
The summary will follow the introductory statement. The summary will consist of anywhere from 3 to 10 supporting statements that provide more details about your experience and/or training. These statements should reflect key areas that you feel are strong requirements for the job position. The statements should be compelling, detailed, yet easy to follow.
use bulletting here
make it to 4-5 points
try to mention all your strong points and achievements
3. Skills
Mention all your skills divided into sub-topics. If you have just a single skill in a catagory, try to club it into others. Pay attention to the required skills
Middleware:
Operating Systems:
Scripting:
Languages:
4. Experience
The experience section is made up of headings, statements of responsibility and statements of achievement.
The Heading - this should include at minimum:
* Name of the Company you worked for
* Location of the Company
* Your Job Title
* Dates of Employment
Statements of Responsibility - Much like the headline statement in the introduction and summary, you will want to build an opening statement that identifies the overall scope of your responsibilities. The following statements then support the opening statement and provide further details regarding your key duties
Achievements - After developing statements of responsibility, you should now document a few achievements. Your achievements are what set you apart from your competition. They help differentiate your resume from other applicants and they demonstrate that you have been successful in previous positions.
5. Education
————–
Experience is almost always a better seller than education, unless you are in an Academic field. Therefore as you gain more experience, focus less on your experience. With the exception of entry level professionals, the education section should fall below the experience section.
Information that is required:
* The name of the degree or certification
* The institution where you received the degree or training
* The date you received the degree
Others
——–
Professional Affiliations - The Project Management Institute (PMI) is a good example of a high profile organization in the field of Project Management and membership is highly regarded. I would not recommend adding this section if the extent of your professional affiliations is something like…. Member of the South Orange Country Computer Users Club.
Publications - Again this is straightforward. Only provide this information if your work was published within well know publication in your field. If you are highly published, it is often a good idea to create a separate document as an addendum to your resume.
Volunteer Work - Sometimes IT professionals set up significant systems within local organizations. In this case, it may be a good idea to add this content, but it really depends on the extent of your career and the level of effort involved in your volunteer work.
In summary, the technical resume should accomplish these goals:
* Introduce yourself with compelling, detailed information using brief statements that summarize your career.
* Identify your key areas of technical expertise and IT skills sets.
* Document the scope of your work experience.
* Demonstrate your past success through statements of achievement.
* Define your training and education.
* Utilize action verbs and action oriented statements.
* Above all else — GENERATE INTERVIEWS.
funny facts
=======
1. Available for interview
What does this statement mean in your resume? If you are not available for interview why sending it ?
2. References available upon request
references are expected when required; why to write which was expected from employer
3. Too many skills
don’t mention everything you read….that just confuses the interviewer on what exactly know
4. Irrelavent things like your hobbiles, interests
If something is not related to the requirement you are applying for…..better leave it
5. Paragraphs with 10+ lines
who has the time to read what all you wrote? make it short and points wise
******
Example
******
Name
Address        email
City/countrt    phone#
Middleware administrator specializing in Websphere platform products with experience in installing, configuring and maintaining enterprise production servers in a high available 24×7 environments. A self-starter, adept at moving into new environment and process first-rate communications and collabaration skills
Summery
=======
* Websphere certified (WAS) administrator and good exposure to MQ
* 5years of experience in maintaining websphere environments on unix/linux hosts
* Trained on websphere MQ from IBM
* Good troubleshooting and analytical skills which were appriciated by clients for quick response times
* Ability to guide the team and train team members
Skills
===
Middleware: Websphere application server, Websphere MQ
Operating Systems: Linux and Solaris
Scripting: Shell scripting and python
Security: Sun LDAP and open LDAP
Languages: Java, HTML and C++
Experience
========
XYZ inc, Los Angeles, CA
Websphere administrator Oct2005 - Dec2008
Build and maintain the websphere application server and IBM http servers on a farm of 1000+ servers hosted on solaris machines. providing on demand troubleshooting and consulting for the issues faced in the web hosting environment. Coordinate with development team to implement requirements change management and service improvements.
YYZZ corp , Boston, MA
Middleware Administrator
Responsible for administrating the middleware components ranging from webservers, application serves and directory servers. Deploying applications and configuring them for higher performance. Maintain the ITIL process related documentation and SLA timeleines. Train staff members on websphere nad guide the rookies.
Education
======
Bachelors degree in Science
From Boston University in 2004
with major in Communications

Sep 10, 2009

Websphere (WAS) Session Replication

What is session?
————————–
*  A Session is a series of requests to a servlet, originating from the same user at the same browser
How session works?
——————————
*  session ID Allows to keep track of individual users
*  Session ID generated on first request and send back to browser with first response.
*  Session ID then arrives with each subsequent request
*  Cookies, URL rewriting and SSL (if request is on HTTPS) are ways to track the session IDs

Distributed sessions
——————————
Session management can store session-related information in …
*  In application server memory (the default). This storage options is knows as in-memory sessions.
*  In a database. This storage option is known as database persistent sessions.
*  In another WebSphere Application Server instance. This storage option is known as memory-to-memory sessions.
*  Distributed sessions are essential for using HTTP sessions for the failover facility
*  Plug-in maintains Session affinity by sending requests with session ID to cluster member where that session has been previously created
*  On the failure of cluster member, plug-in routes requests to other members
*  When cluster member receives a request associated with a session ID that it currently does not have in memory, it can obtain the required session state by accessing the external store (database or memory-to-memory).
Memory-Memory replication
—————————————–
*  In Memory-to-Memory session replication, session data from owner server replicates (copies) in one or more other application server using Data Replication Service
=>Data Replication Service (DRS) is an internal WebSphere Application Server component that replicates data. You can configure DRS by creating a replication domain. Replication Domain can be created either manually from Environment page of admin console or automatically at cluster create time.
*  This requires creation of a data replication service instance in owner server that communicates to other data replication service instances in remote application servers
*  This can be achieved by creating a replication domain and configuring the session manager of cluster members to use memory-to-memory replication.
*  A server can run in one of the following three modes:
*  Client mode: server only sends copies of sessions it owns
*  Server mode: server only stores backup copies of other servers
*  Both mode: server sends copies of session it owns and acts as a backup table for sessions owned by other application server
*  Two different topologies are possible based on above three modes
*  Peer-to-Peer topology
*  Client/Server topology
=> Peer-to-Peer topology
*  Each server stores a session in it’s own memory and also stores sessions to, and retrieves from, other application servers.
*  Each application server acts as client by retrieving session from other servers and acts as server by providing sessions to other application servers
*  This is the default configuration and each application server can:
*  Host the Web Application leveraging the HTTP Session
*  Send Changes to the HTTP Session that it owns
*  Receive backup copies of the HTTP session from all of the other servers in the cluster
=>Steps to configure
1. Create replication domain
configure request timeout, encryption and number of replicas
2. go to Servers ->Application servers -> First Cluster member -> Sessionmanagement -> Distributed environment settings -> Memoryto-memory replication
3. Select the replication domain created in first step
4. Select “Both Client and Server” as replication mode
5. Click Ok and Save to master configuration
6.  Repeat above steps for all the cluster members
7. Once done, restart the cluster
=>Advantages
*  No additional processes and products are required to avoid a single point of failure.
*  Reduce the time and cost required to configure and maintain additional processes or products
=>Disadvantages
*  It can consume large amounts of memory with many users. This can cause a performance impact
*  Does not provide stable configuration for cluster with only 2 members
=>Client/Server topology
*  Application Servers act as either a replication Client or a Server
*  Replication servers store sessions in there own memory and provide session info to clients.
*  Dedicated replication servers just store session but do not respond to users’ requests
*  Client application servers send session information to replication servers and retrieve as needed. Clients respond to user requests
*  Application servers configured as Server can not host any applications. They act as pure data store for backup sessions and receive updates from Clients
*  Backup data is isolated into a separate JVM
*  Client replicas will contain only local session data
*  Application servers configured as Servers must be started before starting Clients
=>Steps to configure
1. Create replication domain
configure request timeout, encryption and number of replicas
2. go to Servers ->Application servers -> First Cluster member -> Sessionmanagement -> Distributed environment settings -> Memoryto-memory replication
3. configure cluster1 members as client
4. configure cluster2 members as Server
5. start cluster2 first and then cluster1
=>Advantages
*  Clearly distinguishes the role of client and server.
*  Reduces the consumption of memory on each application server
*  Better performance
*  Allows recycle of a backup server without affecting the servers running applications
*  Better choice if your hardware varies across the cluster
=>Disadvantages
*  Additional application servers have to be configured and maintained over and above those that interact with the user
*  Need multiple replication servers to avoid a single point of failure.

Sep 8, 2009

Its time to step it up and learn

Well…

The recession is on the road to recovery !  Does this period of recession helped you ? I guess so.

If you are trying to switch to a new job now… just stop thinking of it. I fell this is not at all the right time to go for a jump. Watch out the Job Market…slowly coming to life. That should not be our point of interest. Our interest is what skills are gaining the market and are in demand?
A recent survey on market showing that from the development perspective, .Net will come good after the recovery. Right now, though companies are recruiting for .net seems the market is not reaching the demand. Seems like java development jobs will slow down for sometime.  From the administration view… Looks like IBM products are gaining ground in this recession. Even oracle fusion middleware is also comes good but not as fast as IBM’s. If you are on Operating systems, its time to upgrade you to new level or with a new add-on products like some monitoring tool, version controllers etc
Might be many of you are observing/trying all this recession period for a new job and some of you might already got a new job. What did you make out of the present job market ? Its obvious that, people with multiple related skills are in demand. Example, now very less companies are taking people with only WAS skill or MQ skills. If you are MQ admin, you should know MB as well similarly a WAS admin should know MQ or linux. Now just think, where are you now? Still stuck to a single skill ? This might work out as long as you stick to your present employer but if you want see the world outside, then ??
So which skills to gain? Keep observing the jobs posted on the job portals and compare the Job descriptions with your knowledge. Say you are a websphere admin, look out what other skills the employers are demanding. The main complaint from many employers in this recession period is that - ‘though they want to recruit people there is shortage of the combination skills in the market.

“Cost Cutting”, which drives all the companies after the recovery from the recession. So what is its effect on us ? Obviously its not like the olden days where there are 2 people to do 2 different tasks, now there will be only one who can do both tasks. Are you ready for this kind of challenge?
Now lets talk about your present employer

————————————————–------------------
have ever asked your self any of these questions?
-What type of new projects my company is getting?
-What is my present company’s plan for next 1-2 years?
-Do my company have the required skill to match the demand of the upcoming market?
-What is your company’s plan to bring new skills into the organization?
-How often they do the ‘technical assessment’ of the existing projects?
-what is the existing customer’s feedback or view to continue the business for some more time?
-What will i gain along with this company down the lane in next 2yrs?

Any positive answers?

You should know what’s the plan of your company/manager about your career . Its not just you who has to learn and grow with the technology and have a good future plan. Its the responsibility of your company as well to grow with the technology and make sure that their employees are meeting the expectations of the clients. Will it happen in real-time?
Well… its all depends on you. Have a clear idea on what you want to learn and how the technology is growing. Then compare with your company to see, how is it compared to the market and what are your options to have a hand on the new technologies that are in demand. When and how can you learn them? What does your company provides for you, to achieve your goals. If the answer to this paragraph is +ve, then don’t be in a hurry to make a move now. The good time are ahead. If the answer is -ve, its the best time to step it up. Learn things and wait for the new year.

Take this example.
How do buy a new mobile now a days?
You need SMS, MMS, WAP, GPS, Camera, MP3 player, Video, Wireless and may more… All the mobile manufacturers also coming up with those features, though its costly, why ? Simple reason is they are in demand and some of them are essential for a modern mobile phone.
Same with our case, have an idea on the technologies that you should be, as per the present job market demand. You always have good times around…….your hard work pays. :-)


Websphere (WAS) Dynamic Caching

* Dynamic Cache supports caching of Java servlets, JavaServer Pages (JSP), WebSphere command objects, Web services objects, and Java objects.

* The concept of caching static information in a browser, proxy or a webserver provides an effective way to reduce network and processing requirements. A larger overhead of many web applications is related to the serving, not of static content, but of dynamic content based on user input and retrieval of data from backend resources such as databases.

How to enable Dynamic Cache
* Dynamic cache is enabled by default on V6.1 WebSphere AppServers.
* To enable Servlet and JSP caching from the admin console, navigate to the web container
Servers –> Application Servers -> select server -> webcontainer settings –> webcontainer
* Check ‘Enable servlet caching’
* Save and restart the Application Server to put the changes into effect.

Specify what to be catched
- Now servlet caching is enabled, if is necessary to define which dynamic content will be cached and the rules by which it will be cached or invalidated. servlet and JSP caching will be policy based using the cachespec.xml file. The preferred location for the cachespec.xml file is within the web applications WEB-INF folder.

While the timeout directive dictates how long content can remain in cache before being refreshed, the Inactivity directive can cause a refresh prior to the timeout when a page is not used frequently.

The consume-subfragments property tells the cache not to stop saving content when it includes a child servlet. The parent entry will include all the content from all fragments in its cache entry, resulting in one big cache entry.

Use the element to tell the cache to stop consuming for the excluded fragment and instead, create a placeholder for the include or forward.

A dependencyID identifies a cache entries dependency based on certain factors, such that when those factors occur they trigger an invalidation of all the cache entries that share this dependency.

How it works?
- The first request will result in a cache MISS. Full processing takes place for Time.jsp. The response is returned to the browser but also loaded into cache.
- Subsequent requests for Time.jsp result in a cache HIT until the cached copy of Time.jsp is invalidated.

Monitoring Dynamic cache
* Once Dynamic caching is configured, and dynamic content is cached, the content of the cache can be examined and monitored using the cachemonitor.
* An enterprise application called CacheMonitor is provided with WebSphere Application server. It is available in the folder /installableApps and called CacheMonitor.ear.

Disk Offload
* By default, when the number of cache entries reaches the configured limit for a given application server, cache entries are removed from the memory cache, allowing newer entries to be stored in the cache. Use disk offload to copy the cache entries that are being removed from the memory cache to disk for potential future access. Disk offload is configured via the adminconsole either globally or for a specific cache instance.

Cache Instances
* Since different webapplications or pages may have different caching requirements, unique cache instances can be created for each. This allows applications to have greater flexibility and better tuning of cache resources.
* The characteristics of each servlet cache instance are a unique jndi name, disk offload policies, cache configuration and performance parameters.

Configure a new cache instance
goto Resources –> Cache Instances –> Servlet Cache Instance –> new
* A jndi name must be given to the cache instance which will be used to refer back to the instance in cachespec.xml.
* Check ‘Enable disk offload’ and specify a disk off load location, cache size and cache entry limits.

Cache Invalidation
* It is essential that timely invalidations of cached content take place for the integrity of the website.
Mechanisms for invalidation are:
-timeout or inactivity directives within cachespec.xml
-group-based invalidation mechanism through dependency IDs.
-Programmatic invalidation via the cache API 'com.ibm.websphere.cache.*’
-The CacheMonitor

Some Tips
* WebSphere Application Server uses JVM memory to store cached objects. Therefore, it is important to know how much memory can be allocated for the cache and based on this information you can set the cache size to the proper value.
* Increase the priority of cache entries that are expensive to regenerate.
* Modify timeout of entries so that they stay in memory as long as they are valid.
* If the estimated total size of all cached objects is bigger than the available memory, you can enable the disk offload option.
* Increase the cache size if memory allows.