Friday May 09, 2008

Messaging Server: Managing Tiered Storage Requirements

We've recently completed an article, posted on the Comms Wiki, titled "Messaging Server and Tiered Storage Overview." Here's a synopsis:

This document describes the operation of Sun Java System Messaging Server message store, its performance characteristics, and how to plan for and allocate store partitions. Additionally, this document describes next generation best practices to meet the storage needs of both ISPs and enterprises.

Part of what this article says is here you are now:

And here is where we think you ought to end up:

This article also contains a very nice summaries of the Comms logical two-tiered architecture as well as how Messaging Server works:

Friday May 02, 2008

Friday Blues Blogging

Hound Dog Taylor and Little Walter. Footage of Walter is very rare to come by. But this pairing with Hound Dog is quite nice indeed.

BTW, Hound Dog had six fingers:

Installing Comms: Lowering the Barriers, Day 3: Two Steppin' & The Func Funk

Much of the deployment experience for Comms Suite involves running individual product configurator tools. That is, when deploying Comms, you do the two-step dance of installing the bits and THEN configuring them.

If you're new to the product, or coming from the world where the installer DOES everything for you, well, that's just not so in Comms. For better or worse, we split up the deployment experience into laying down the product software and then configuring that software.

I'm at the point in the Single Host Deployment Example where I have installed the Comms Suite bits and am now configuring the component products.

You run the component configurators in the following order:

  • comm_dssetup.pl to prepare the LDAP directory with Comms schema
  • config-commda for Delegated Administrator
    BTW, here's a shot of the DA Console (a feel good that yes, the process is working as documented)
  • configure for Messaging Server
  • csconfigurator.sh for Calendar Server
After running csconfigurator.sh, you need to hand-edit the Calendar Server ics.conf file and a few other Calendar Server files, then reload the service schemas. A really useful error then appeared when trying to stop/restart the Calendar Server:
# ./stop-cal
[30/Apr/2008:19:32:21 -0700] elwood2 [11006]: General Error: func=_configdrv_file_readoption; error=unexpected character after value; data="
ERROR: Could not initialize config system
Okay, after so much smooth sailing, I've got the func FUNK.

I'm thinking, what the heck, and how am I even supposed to begin troubleshooting this with such a helpful error message. (Perhaps to seasoned Calendar Server admins, it's obvious.)

As I had just edited the Calendar Server files, I figured that was a good place to start. Careful examination revealed that I had left off an ending double quote (") on a value in the ics.conf file. Which points out to a real issue with deploying Comms: With all the typing and hand-editing of files involved, human error is a very real problem. So far, that has to be my major complaint with this deployment methodology.

Hmmm, would have been interesting, in hind sight, to have used this Error Rate Calculator, telling you what your typing error rate is - that is, how often you have to hit that Backspace key to correct an entry.

Up Next: On to Instant Messaging.

Wednesday Apr 30, 2008

Installing Comms Deep Thought

Running the Delegated Administrator configuration script, config-commda, takes a longggg time to complete on a not-so-swift host.

Tuesday Apr 29, 2008

Comms Wiki Contributions

If you haven't been paying attention to the Comms Wiki of late, then you've missed some exciting Community-sponsored contributions. The following wiki pages were recently authored by Jesse at the University of Wisconsin:

Comments are another area where we are getting great feedback. Contributor Nate has been especially active. Just this morning, he left this tip in the Comments section on the Connector for Outlook FAQ page.

A big thanks to Jesse and Nate, and the rest of the contributors out there. And while I'm at it, a public service reminder to the Comms Community: the Comms Wiki is there for your use. Have a tip or article you'd like to share? Got an interesting configuration you'd like to pass along? Feel free to log in and contribute. Don't yet have a Sun Online Account, with which to log in? Get one here.

One more tip: To keep track of the latest additions and changes to the Comms Wiki, use the Recently Updated Pages link.

Monday Apr 28, 2008

Installing Comms: Lowering the Barriers, Day 2

The subtitle of Installing Comms Suite, Day 2, ought to read "I'm my own worst enemy." After finally getting past the point of installing Application Server, Directory Server, Access Manager, and Web Server, as detailed here, I finally got on to the long-awaited installation of Comms products themselves, and then being able to run the comm_dssetup.pl script, which would apply the necessary schema for Comms to the Directory Server. Ah, at last, smooth sailing ahead.

Except that the script would not recognize my Access Manager installation. When choosing my Schema type as Schema 2, (which the Single Host Deployment Example uses), the script responded:

Please enter the Schema Type (1, 1.5, 2) [1]: 2 Access Manager has not been configured for this new user/group suffix You can opt to continue, but you will not be able to use features that depend on Access Manager
Hmmm, odd I thought. No problem, I'll just uninstall Access Manager and reinstall, just to be sure. One uninstall/reinstall, same result. Twice, same result. Okay, third times the charm. Same error message.

Then I actually stopped to read a little burp of an error in my term window:

has_naming_context_ds6 get-suffix-prop result: execv(/opt/bits/jre1.5.0_15/java/bin/java): No such file or directory
A little poking around, and sure enough, I was setting a bogus JAVA_HOME variable and comm_dssetup.pl was complaining! Naturally, when I fixed this I was on my merry way.

Next step: Running all those Comms configurators. Where's the easy button when you need it?

Friday Apr 25, 2008

Friday Blues Blogging

This week's edition of Friday Blues Blogging: Louisiana Red (that's Carey Bell on harp and Jimmy Rogers on second guitar):

More info on Red here.

Installing Comms: Lowering the Barriers, Day I

As I mentioned previously, I'm trying to eat my own dog food

by using the Comms 6 Single Host Deployment doc. Now, I'm not what you would call a UNIX sysadmin, nor a Comms sysadmin by any stretch of the imagination. Let's just say I'm a jack of all trades, master of none. I know enough where to look for answers and when to ask for help. Guess what I'm saying is that for being somewhat of a novice, I should be able to complete this exercise.

Right now, for the second time, I'm re-uninstalling the Identity Suite components needed for a Comms deployment. That would be Directory Server, Access Manager, and Web Server. Why you ask? Because I can't follow my own instructions. (Big grin.)

Lesson One: Don't cut corners.
When I started this exercise, the first step was to install Application Server 9.1 Update 1. That requires Java 1.5. My system, running Solaris OS 9, only had 1.4. At first I thought I could just download and install the JRE; a smaller download than the entire JDK. Okay, I cut a corner. I installed the JRE (and had to figure out where my PATH was still picking up the older JRE and preventing me from launching the Application Server installer) and ran the Application Server installer. Well, one of the options was the location of the Java 2 SDK 5.0 or higher. Urg. I did need the entire JDK. So I had to exit the Application Server 9.1 Update 1 install, hunt down the new JDK, then download it, then install it. More lost time.

Lesson Two: Read the documentation. Closely.
In my case, I mistakely choose to install all the Identity Suite components (as well as all the multi-national languages, which aren't necessary for my POC, and take up lots more time to install as well). This had the unfortunate effect of installing a second copy of Application Server, version 8.2, which I *think* overlayed my initial installation of Application Server 9.1 Update 1, needed for Convergence (Kendo). If I had followed the doc, I would have skipped installing this second conflicting version. (And as I'm writing, the IS uninstall just finished. It is not a quick process on a slow machine, trust me.)

BTW, finding out how to uninstall the Identity Suite components wasn't an easy Google. I finally found out on a Sun Forum how to do it:
/var/sadm/prod/SUNWident-entsys5u1/uninstall

Much of the time during this exercise, I find myself asking: Is this typical of the customer experience? If so, once again, I'm feeling your pain.

I'm on to reinstalling the Identity Suite components at this point. More later.

BTW, some things I've had to learn along the way:

  • Using ssh
  • Using scp to copy files to a remote secure host
  • Using ssh -X to remote diplay an application
  • Finding a Solaris copy of Mozilla (and installing it)
  • All the service stop/start commands

Thursday Apr 24, 2008

Installing Comms: Lowering the Barriers

In the next few days, I'll be blogging about my experience installing Communications Suite 6, as described in Deployment Example: Sun Java Communications Suite 6 on a Single Host.

When I first started this exercise, I wanted to blog about how we in Comms need to, and are trying to, lower the barrier to installing Comms Suite. That is, an admission that for many customers, installing just a proof-of-concept Comms deployment does have some aspects of rocket science to it.

But for now, I'm feeling the pain, as they say, much like this poor fellow:

Stay tuned for more details of my experience. In future blog entries I will also be describing the positive strides we are taking towards making installing Comms an easier and better proposition.

Modern Email Usage

And the survey is in: Spam in a landslide!

Monday Apr 21, 2008

Tour de Comms Wiki

Now that we have this new documentation approach called the CommSuite Wiki, how are you supposed to use it, what routes can you follow to get to the information you need, what are the paths to take to get to where you want to go, and what's different about this approach than with previous Comms releases?

With that in mind, here's a quick tour of the CommSuite Wiki.

General Overview

We're using panels to organize content on the Comms Wiki Landing Page (the top-level page). These panels present different views of the available information; different pathways, if you will, depending on how you like to access information. The Landing Page also gives links to previous versions of Comms docs so that you don't have to go to docs.sun.com, where those older docs are located.

About This Wiki Panel

In some ways, this is the obligatory stuff every site needs: purpose of this wiki, how to contact us, and so on. Use the Recently Updated Pages link to see at a glance the most recent changes made to the Comms Wiki.

How-To's Panel

The How-To's panel presents Comms how to information in a product life-cycle type format. That is, we envision six high-level areas for your Comms deployment, starting with Planning and ending in Troubleshooting. Note: Wherever possible, we use Confluence labels and macros to automatically create the content of these pages, ensuring that new pages get added to these indexes on the fly.

Guides Panel

This panel presents a traditional view of the Comms information, organized along the lines of manuals, guides, and the like. Notice the Work-in-Progress Documentation. In this new model, we will be presenting and sharing the information as soon as we have something, even if we are still dotting the i's and crossing the t's; the thought being, the sooner we can get info in your hands, even if it still needs a little work, the better. (And, being a wiki, the entire Comms community can have the chance to enhance and add to the information as well.)

Quick Picks Panel

This panel is a compendium of assorted links that we think need special attention or highlighting. Additionally, if we see that certain pages are being accessed more frequently, we'll update this panel with the links to those pages. Of note in this panel: the Indexes and FAQ pages use labels and macros, like the How-to pages, to automatically generate content.

Searching for Information on the Comms Wiki

Searching the Comms wiki is actually quite easy and fast, in my opinion. Every Comms wiki page contains the Searching Sun Java Communications Suite bar. Simply begin typing what you are looking for. As the above screenshot shows, you are presented with a list of matches, even before you press the Enter key. You can pick a link from this list, or press Enter to get even more search options.

Tip: Instead of using the wiki breadcrumbs to navigate back and forth to the Landing page, use the Search bar to quickly locate what you need.

Questions or Comments?

Feel free to drop a line and let me know what you think.

Friday Apr 18, 2008

Oh Poppycock: 15th Century Email

I guess this vid has been out there for a while, but this is my first time coming across it.

Friday Blues Blogging

Today's edition of Friday Blues Blogging: a little something from the oft-overlooked Pee Wee Crayton:

Thursday Apr 17, 2008

Messaging Server: Best Practices for userPassword Attribute

There was a question posed the other day about what, if any, character limitations there are for the userPassword attribute in our schema. The questioner pointed out that for the uid attribute, a number of characters are disallowed, including:

$ ~ = # * + % ! @ , { } ( ) / < \> ; : " ” [ ] & ?

Apparently, there are no such restrictions on the userPassword attribute. One of our Messaging experts reports to have seen most, if not all, of the disallowed characters for the uid attribute used in the userPassword attribute.

However, this does not necessarily mean that it is a good idea to consider all of these characters for use in the userPassword attribute.

In general, best practice would be to disallow characters that can be confused by a Unix shell or web page to be a seperator, wildcard, grouping symbol, or other meta character. For example, think about what could happen to a migration script or LDIF output that had userPassword: !/bin/sh;rm -r /*. Instead of just reading the password characters, imagine the damage this could cause if a typo or bad code spawned the command.

The takeway: Just because something is "allowed" doesn't make it a good practice.

Note: uid, which is a synonym for userID (defined in RFC 1274), is used by Messaging Server not only for logging in, but also in hashed form, to specify part of the file path where user messages are stored. Thus, Messaging Server needs additional restrictions on the uid so that the file path constructed using the uid is good and safe. Furthermore, to avoid ambiguity with IMAP ACL syntax, the Message Store also enforces a restriction that the leading character of the uid cannot be a hyphen (-).

Hat tip KH and DL.

Monday Apr 14, 2008

Comms Software Summit: Day 3

By now, having read my previous entries here and here, you're all probably getting the feel of what it's like to sit through Death by Powerpoint. Excuse me, StarOffice. Nevertheless, speaker after speaker continued to provide really interesting information, tidbits, and annecdotes of the Comms world.

Communications Suite Installer

From a general perspective, the a Comms Installation must deal with the following situations:
  • Different types of components on different machines (zones)
  • Non-Comms components (DS, AM, AS)
  • Multi-host deployment
  • OS patches

The Comms Installer is not all things to a Comms installation. You still have to to use the JES installer too. That situation, sadly, hasn't changed for the upcoming Communications Suite 6 release. You'll use the JES installer for Directory Server, Application Server, Web Server, Access Manager, and shared components. You'll use the Comms Installer for Comms components, of course, as well as OS patches and some auxillary components, namely, Service Tags.

Before you begin laying down the bits, you should consider the following topics/questions:

  • Single host vs. Multiple hosts?
  • What goes where (architecture)?
  • What is your Identity strategy (LDAP vs AM SSO)?
New documentation for this release includes a great Comms Suite 6 Installation Flowchart, as well as a completely revised Comms 6 Installation Guide.

One comment that came up: Do we ship the DS tuning script idsktune? Yes, this utility ships as part of Messaging Server. In the past, it was used to find missing OS patches. The installer now tells you what is missing and provides the patches themselves.

Q. Will Comms installer handle installs not done by this Comms Installer?
A. Yes, going back to Java ES 1.

The multi-install feature (installing multiple instances on a single machine) is currently only available for Messaging Server. (See the altroot install option.)

You can use the --dryrun option to test the install. This creates a silent install file, which you can then use for an actual install. Some in the crowd do this as a best practice when installing Comms.

No surprise here: Folks are still asking for a best practices doc on installing Comms in Solaris Zones.

Installing Comms with EMRA

The EMRA toolkit is good choice for installing Comms and non-Comms components for those customers with complex deployments, who need to repeat an install of a particular kind of node in a replicable way. The plan going foward is to productize EMRA. The toolkit is fairly self-documenting right now. I could see Pubs providing a high-level EMRA doc when appropriate.

Customizing Sun Convergence

There was a very good preso on customizing Sun Convergence (formerly called Communication Center, Project Kendo). I was impressed that a lot of the issues in customizing Communications Express seem to have been dealt with. I'm not a Dojo expert by any means--and you'll need Dojo experience to perform more than basic customizations--but the approach seemed logical and to make sense.

The customization is handled by, you guessed it, a customization service (c11n). You make changes through a CLI (no GUI). For the most part, the customization service was designed with ISPs in mind.

What can be customized:

  • Theme (css of color, font, background, icon)
  • i18n strings
  • Widgets (banner; based on Dojo digits)
  • Third-party service integration (ex: Flickr)

You can customize Convergence for all domains or specific domains. Customizations are saved across upgrades (big yay from the crowd).

Note to customers: Basic banner customizations might be easier to do via css files than the customization service.

Q. Can Convergence services "share" info in a mashup?
A. Yes.

Q. Does the client have multiple from fields (multiple sender IDs)?
A. In a coming update.

Q. How to set the default client view?
A. There's an options parameter to hide an app in the background. For example, you might want to display just Mail and Calendar, but hide the IM in the background (even though it's available).

ISPs should be able to customize Convergence in a targetted way. That is, based on the user's context, you could provide new services that the customer would would like or most likely be interested in.

Cloudmark

Kevin from Cloudmark talked about spam and his anti-spam product, which works with Messaging Server. Now, I realize that spam has been and will continue to be an issute, but per Kevin, in 2007, 95% of all email was spam. There is a kind of "arms race" going on between spammers and anti-spammers. 15% of computers on the Net are infected.

Some terms new to me:

  • botnet: computer or computers that run autonomously, spewing spam
  • fingerprinting: technology in Cloudmark to keep up w/ spammers
  • honey pots: computers at customer sites to attract spammers and then take that info to defeat them (Cloudmark uses honey pots)