’s Online Technical Journal October 2003

Novell AppNotes®

SECTIONS: 108 NET MANAGEMENT 121 NET SUPPORT 127 CODE BREAK 139 VIEWPOINTS

Spotlight on Novell Ximian Services

AppNotes Developer Notes 4 Enabling Enterprise Linux with Novell Ximian 66 Integrating Applications with the IP Address Services Management Framework 14 Cluster-Enabling DHCP, DNS, and SLP Services in 79 How to Deploy Novell exteNd Director 4.1 NetWare 6 Enterprise on Tomcat 4 46 Creating ZENworks Inventory Reports Using the 98 How to Build J2EE Applications Using Novell Crystal Reports Designer Technologies: Part 10 Novell’s Online Technical Journal

Novell AppNotes®

Novell AppNotes Richard L. Smith Editor-in-Chief

Novell AppNotes® (formerly Novell Application Notes, ISSN# 1077-0321, and now Ken Neff Managing Editor including the former Novell Developer Notes) is published monthly by Novell, 1800 S. Edward Liebing Senior Editor Novell Place, Provo, UT 84606. The material in the AppNotes is based on actual field experience and technical research performed by Novell personnel, covering topics in these Rebecca Rousseau Editor main areas: Jeff Fischer Research Engineer

• Network design and optimization strategies Robert Rodriguez Online Production • Network management tactics • Novell product internals and theory of operations Wes Heaps, Michelle Barnum Graphics • Novell product implementation guidelines • Integration solutions for third-party products • Network applications development and tools Editorial Comments

This information is designed to benefit Novell’s technical audience consisting of systems engineers, Direct any comments or suggestions about the support engineers, consultants, programmers, network managers, and information systems personnel. content of AppNotes to:

Richard L. Smith Permissions Novell AppNotes Novell, Inc. MS PRV F-141 You must obtain permission before reproducing any material from the Novell AppNotes in 1800 S. Novell Place any form. To quote from or reprint any portion of an AppNote, send a written request to: Provo, Utah 84606 USA [email protected]. Voice (801) 861-6508 Fax (801) 861-4123 E-mail [email protected] AppNotes on the Web

The AppNotes are available on the Web at http://www.novell.com/appnotes. Subscribe for the AppNotes email to be notified when new contend is posted to the AppNotes website at http:/ /developer.novell.com/email/.

AppNotes was produced using Adobe FrameMaker, Adobe Illustrator, Adobe Photoshop, WebWorks Publisher Professional, and HP LaserJet printers.

Copyright © 2003 by Novell, Inc., Provo, Utah. All rights reserved.

Novell, Inc. makes no representations or warranties with respect to the contents or use of these Application Notes (AppNotes) or of any of the third-party products discussed in the AppNotes. Novell reserves the right to revise these AppNotes and to make changes in their content at any time, without obligation to notify any person or entity of such revisions or changes. These AppNotes do not constitute an endorsement of the third-party product or products that were tested. Configuration(s) tested or described may or may not be the only available solution. Any test is not a determination of product quality or correctness, nor does it ensure compliance with any federal, state or local requirements. Novell does not warranty products except as stated in applicable Novell product warranties or license agreements. Letter from the Editor

October 2003

Dear AppNotes Readers: Here in the Northern Hemisphere, October heralds a very noticeable change in the seasons. Gone are the bright warm days of summer, and the falling of the leaves is often marked by feelings of letdown as we hunker down and prepare for winter. But just as we here are making the transition to fall, those of you in the Southern Hemisphere are cheering the arrival of spring and looking forward to summer. As with most things, changes in the seasons are both good and bad, depending upon your outlook—or in this case, where you happen to be at the time. The same can be said about the recent change in how we deliver AppNotes. Since its debut in 1990, Novell AppNotes has been a premier printed technical journal, recognized as one of the best of its kind. In those days, paper was the best way to make information available to the largest number of readers. But, just as the seasons change, so do many other things—including how people look for information. The past 10 years have seen radical changes in how we gather and use information. Back then, the availability of technical information was limited in both quantity and accessibility. Today all you need is a networked computer and, with a bit of thought and time, you can find just about anything you need to know. This new information consumption paradigm is the fundamental reason behind Novell's decision to stop distributing printed copies of AppNotes. Over the past few years, the increasing ease of finding and reading content online has resulted in a steady decrease in the number of hard-copy subscribers. As resources become scarcer and more thinly stretched here at Novell, it has become necessary to re-focus the effort required to create a printed publication. Let me be clear: the value of the content we produce in AppNotes was never in question, just the expense of delivering it in a way that is no longer preferred. With the new focus on online content, you can continue to expect and receive the high quality but now even more timely technical content targeted directly at Novell's products and technologies. We've taken this opportunity to revise the look of AppNotes and make more use of color. For those of you who need or want printed copies of individual articles or entire issues of AppNotes, we'll continue to provide PDF (Acrobat) versions of each article and a full eBook of each issue that you can download and make high quality printouts. With that, let's get to that content for October. … On the AppNotes side, along with “Cluster-Enabling DHCP, DNS, and SLP Services in NetWare 6” by Dr. Frieder Schmidt and Hylton Leigh and “Creating ZENworks Inventory Reports Using the Crystal Reports Designer” from J Somakala, you’ll find “Enabling Enterprise Linux with Novell Ximian Services.” This AppNote will help those who have little or no knowledge of the recently-acquired Ximian products understand what they are all about. For developers, we have “Integrating Applications with the IP Address Management Framework” by CH Ganapathi and “How to Deploy Novell exteNd Director 4.1 Enterprise on Tomcat 4” by Ulrich Romahn. Those of you who are responsible for building and customizing Web portals will be very interested in the latter Developer Note. I hope you enjoy the new online AppNotes and the other changes going on around you. Remember that, for things to get better, something must change. Richard Smith [email protected] Editor-in-Chief

http://www.novell.com/appnotes October 2003 1 October 2003

AppNotes

4 Enabling Enterprise Linux with Novell Ximian Services Adapted from a Ximian Sales Presentation This AppNote introduces Novell Ximian Services (NXS) and related technologies that Novell recently acquired from the purchase of Ximian.

14 Cluster-Enabling DHCP, DNS, and SLP Services in NetWare 6 Dr. Frieder Schmidt Hylton Leigh This AppNote describes a high-availability implementation of DHCP, DNS, and SLP Directory Agent services on a NetWare 6 cluster.

46 Creating ZENworks Inventory Reports Using the Crystal Reports Designer J Somakala This AppNote explains how to create inventory reports from Novell ZENworks for Desktops and ZENworks for Servers using the Crystal Reports Designer included in Crystal Reports 8.0 and 8.5. Crystal Reports is a third-party product for producing customized reports from various types of databases.

Developer Notes

66 Integrating Applications with the IP Address Management Framework CH Ganapathi This AppNote discusses two different interfacing mechanisms for integrating an application with the IP Address Management Framework in NetWare 6.5. It helps you decide which interface an application should use to integrate with the framework. It also explains the features provided by the framework that the application can make use of.

79 How to Deploy Novell exteNd Director 4.1 Enterprise on Tomcat 4 Ulrich Romahn This Developer Note explains how to deploy Novell exteNd Director 4.1 Enterprise on the Tomcat 4 application server.

98 How to Build J2EE Applications Using Novell Technologies: Part 10 J. Jeffrey Hanson This is the tenth in a series that outlines a platform and methodology for Java 2 Platform Enterprise Edition (J2EE) application development on NetWare using a service-oriented architecture. In this AppNote, we will investigate Novell technologies that allow us to create and host UDDI servers on the NetWare platform.

http://www.novell.com/appnotes October 2003 1 Net Management Net Management

108 Network Novice 116 Directory Primer iFolder 2.0 eDirectory 8.7 Features 113 Tips and Tricks Navigating the AppNotes Web Site Effectively

Net Support 111 Net Support

121 TIDbits 124 Dear Ab-End TIDbits highlights some of the more useful Dear Ab-End provides answers to technical Technical Information Documents that are questions in an advice column format. published on Novell's support Web site.

Code Break Code Break

127 Developer Q & A 135 DeveloperNet News Developer Q&A provides answers to technical DeveloperNet News is a conduit for keeping developer-related questions. current on the latest Novell DeveloperNet events and program updates.

Viewpoints 129 Viewpoints

139 Ramblings 140 Lightweight Access Ramblings is a monthly opinion column by our Lightweight Access is a look at the lighter side of Editor-in-Chief. This month’s topic: Open Source, networking, including humorous observations, Freeware, GPL...Wow!! What Does It All Mean? jokes, and other diversions to give you a break from the daily grind.

http://www.novell.com/appnotes October 2003 2 AppNote

Enabling Enterprise Linux with Novell Ximian Services

Adapted from a Ximian Sales Presentation and various product evaluation guides

This AppNote introduces Novell Ximian Services (NXS) and related technologies that Novell recently acquired from the purchase of Ximian.

Contents: • Introduction • Overview of Novell Ximian Services • Linux Server Deployment Challenges and Solutions • Linux Desktop Challenges and Solutions • Continued Involvement in Open Source Projects • Impact of Ximian Acquisition on Customers and Partners • Conclusion

Top ic s Novell Ximian Services, Red Carpet Enterprise, Ximian Desktop, Ximian Evolution, Ximian Connector, network management, desktop management, Linux, open source Products Novell Ximian Services Audience network administrators, consultants, integrators Level beginning Prerequisite Skills familiarity with Linux server and desktop environments Too ls none Sample Code no

http://www.novell.com/appnotes October 2003 4 Introduction Linux servers and workstations are making more and more inroads into corporate computing environments. According to recent research, Linux is running on over one- fourth (27%) of corporate servers. By the year 2006, the installed base of Linux servers worldwide is expected to exceed 10 million and the number of Linux desktops worldwide will reach 28 million. In many organizations, Linux has already reached critical mass, finding applications in Web servers, file, print, and database servers, on technical desktops, and increasingly, on traditionally non-technical desktops.

The rise of Linux as both a server and desktop platform, however, has not been without its challenges. But eliminating these barriers to the widespread adoption of Linux has provided a prime business opportunity for Linux solution vendors. One such vendor is Ximian. Founded in October 1999, Ximian quickly became a key player in the Linux community. It is the manufacturer of a popular line of enterprise Linux products with an installed base of 1.5 million users and growing. To strengthen its position in the Linux marketplace, Novell acquired Ximian in August of 2003.

This AppNote provides an overview of the new Novell Ximian Services (NXS) business unit, along with a description of its products and technologies and how they can help overcome the barriers to enabling Linux at the enterprise level. It also briefly summarizes Novell’s support for the GNOME and Mono open source projects

Overview of Novell Ximian Services On 4 August 2003, Novell announced its acquisition of Ximian. The Novell Ximian Services business unit, based in Boston, will continue to develop the Ximian Desktop productivity application suite, Ximian Evolution groupware suite, Ximian Connector for interoperability with Microsoft Exchange, and Red Carpet Enterprise software management products. In addition, NXS will continue its role in the open source GNOME and Mono projects.

This acquisition demonstrates Novell’s commitment to becoming a leading enterprise Linux solutions company and contributor to the open source community. It fits perfectly with Novell’s cross-platform strategy that was launched in 1999 when we made eDirectory run on platforms other than NetWare. Since then, we’ve been steadily making our other solutions work across multiple platforms. In April 2003 we announced our plans to deliver all the network services we now provide on NetWare on both the Linux and NetWare kernels in the future. We’ve introduced key open source technologies in NetWare 6.5, including MySQL, Apache, Tomcat, and others. Now, Novell is stepping up with the Ximian acquisition to offer businesses a broader range of Linux server and desktop solutions, integrated with best-of-breed management tools, and backed by world- class support and services. It’s all about giving customers a choice, letting them run the systems and platforms they want, and giving them the tools to manage and secure their environments cost effectively.

http://www.novell.com/appnotes October 2003 5 Linux Server Deployment Challenges and Solutions As organizations turn to Linux to take advantage of its power, flexibility, and open source model, they face significant new software management challenges. Unlike typical closed source operating systems and applications, Linux operating systems and applications are constantly being refined and updated by vendors. OS updates, for example, are available weekly from most vendors, and some application developers deliver bug fixes for packages daily. The decentralized model for software development is one of Linux’s key strengths; however, that benefit comes at a cost. Ximian research has shown that some Linux users are spending 5-10 hours per week manually updating and maintaining systems.

Other barriers to lowering the support and management costs associated with Linux servers include the following:

• Past grass roots, decentralized adoption

• Perceived lack of enterprise management tools

• Costly and complex manual solutions

• Impact of Linux administrative overhead on IT budgets

Whether you try to implement cumbersome home-grown manual or script-based methods for keeping your Linux environment up-to-date, or turn to expensive customized single- vendor solutions, valuable resources are derailed from the more important function of moving your business forward into the maintenance of basic infrastructure. What is needed is an automated solution for updating server and workstation software that combines cross-platform flexibility with a scalable, secure architecture. It needs to have an easy-to-use administrative interface, and power tools to dramatically improve administrator productivity. The system would also need to provide maximum security for the enterprise deploying it.

Here is a summary of the required attributes of the ideal software management solution:

• Easy, intuitive installation

• Internal (“behind the firewall”) deployment

• Cross-platform Linux OS compatibility

• Centralized administration

• Secure distribution of internally-developed and customized applications

• Support for on-demand and pre-scheduled updates

• Time-saving automation tools

• Comprehensive software dependency and conflict resolution capabilities

http://www.novell.com/appnotes October 2003 6 The Novell Ximian Solution: Red Carpet Enterprise The server-based Red Carpet Enterprise (RCE) is an automated, scalable solution that eliminates one of the most difficult and costly challenges facing administrators: deploying and maintaining Linux software standards across hundreds or thousands of company workstations and servers. It provides administrators with a secure, customizable software management solution that fulfills all of the requirements listed above.

Easy, Intuitive Installation. RCE is easy to install; the entire process takes only about 30 minutes.

Internal “Behind the Firewall” Deployment. RCE is deployed inside a corporation’s firewall, so it is a completely secure solution.

Cross-Platform Linux OS Compatibility. RCE simultaneously supports systems running a wide range of Linux distributions, including Red Hat Linux (7.3-9), Red Hat Enterprise Linux (AS, ES), SuSE Linux (8.2 and Enterprise Server 8.0), Mandrake 9.1, and more.

Centralized Administration. From either an intuitive Web-based administration console or a scriptable command line interface, administrators can centrally configure and distribute software selections, manage users, and create group profiles of target machines for installations and updates. The task-based console can be accessed from Microsoft Internet Explorer 6 or Mozilla browsers.

Secure Distribution of Internal and Customized Applications. RCE provides the flexibility needed to distribute both internally-developed and customized applications to users. Administrators can build secure, private software channels containing their own internal or customized packages. Optionally, RCE customers can subscribe to access software and update selections from the broad Red Carpet public library of applications, including applications from Novell Ximian, Linux OS publishers, and other leading Linux vendors.

Support for On-Demand and Pre-scheduled Updates. RCE enables organizations to automatically control the installed Linux software either on-demand or according to a preset schedule. Updates for workstations or servers can be initiated by users on an on- demand basis, or centrally scheduled using RCE’s Autopull technology.

Time-Saving Automation Tools. Using RCE, administrators can set up and maintain groups of desktop and server systems to receive software packages and updates. Software is organized into easy-to-understand channels, and a simple subscription metaphor is used to ensure that the right groups get access to the right software. RCE directly integrates with the Red Hat Network and SuSE YaST systems for enterprise Linux software updates. The Red Carpet Mirror feature keeps the RCE server updated with new software.

http://www.novell.com/appnotes October 2003 7 Comprehensive Software Dependency and Conflict Resolution. RCE offers automated software dependency and conflict resolutions for systems performing RPM (Red Hat Package Manager) or dpkg (Debian package) software updates. When updates or new versions of software are distributed, all potential dependencies and conflicts are analyzed and resolved to keep systems working through the update process. For scalability, dependency detection and conflict management is performed on the servers and workstations being updated, not on a single central server, so that updates occur smoothly even under heavy demand.

Other RCE Features. RCE is designed with enterprise security in mind. The system runs entirely within a company’s network. All communications between systems and RCE servers are secured and all packages are digitally signed. For extra control and flexibility, the Red Carpet Daemon provides a “roll back” feature to allow recovery of previously- installed software and associated configuration files. Its “lock down” feature provides control of packages that should be excluded from installation.

Linux Desktop Challenges and Solutions In addition to its increasing use for enterprise application servers, Linux is rapidly gaining popularity as a desktop OS. It is especially attractive to organizations that want to retain control over their desktop environment and reduce the costs associated with software licensing, security, maintenance, and support. These organizations have typically adopted a multiple-vendor strategy to capitalize on the flexibility of open standards-based computing. The use of Linux as a corporate desktop standard allows strategic independence and freedom to choose the best solutions available to meet business needs. Customers that have adopted Linux-based solutions report up to 80% reduction in software licensing costs, better stability, and enhanced security that results in significantly fewer problems with virus and worm attacks. A recent Ximian study found that 70% of Fortune 1000 CIOs interviewed are considering deploying Linux on the desktop.

Linux Desktop Solution Requirements As with Linux server adoption, there are certain requirements that must be met in order to overcome the challenges of switching to Linux at the desktop. These include the following:

• Application Availability - To maintain productivity, Linux users must have access to the core productivity applications they need to do their jobs.

• Usability - To reduce training and support costs, Linux solutions must provide familiarity for Windows users.

• Integration - Linux users need to have an integrated desktop environment with a consistent interface across applications.

• Interoperability - In order to eliminate the “two PC” problem, Linux solutions must be interoperable with existing corporate systems and support the same file formats, messaging and collaboration systems, and network protocols and file systems.

http://www.novell.com/appnotes October 2003 8 • Manageability - It must be easy for administrators to deploy and manage software and security updates, as well as administer and lock down Linux clients.

• Cost of Ownership - The Linux solution must significantly reduce the costs associated with software licensing, support, and training for users.

The Novell Ximian Solutions: Ximian Desktop 2 and Ximian Evolution Ximian Desktop 2 (XD2) provides a complete productivity application suite with breakthrough usability features and seamless Windows interoperability to enable organizations to easily and affordably deploy Linux desktops in mixed Windows/Linux environments. Based on GNOME 2.2, XD2 delivers dozens of innovations including a intuitive interface, the Ximian Edition of OpenOffice.org for Microsoft Office file- compatible documents, one-click Windows network navigation, and easy printer setup to reduce training and support costs. Ximian Desktop 2 is supported on these leading Linux distributions: SuSE (version 8.2) and Red Hat (7.3, 8.0, and 9).

The new Ximian Evolution 1.4 is the premier personal and workgroup information management solution for Linux and -based systems. Ximian Evolution integrates e- mail, calendar, contact and task list management in one easy-to-use application. The application supports a broad range of Linux distributions and UNIX variants, including Red Hat 7.3, 8.0, 9; SuSE 8.2 and SuSE Linux Desktop, Mandrake 9.1, and Solaris 8.

Ximian Connector 1.4 is a client extension that enables Ximian Evolution to function as a Microsoft Exchange 2000/2003 client for e-mail, personal calendars, group calendars, global address books, tasks lists, and public folders. With Ximian Connector installed, Linux and UNIX users running Ximian Evolution can collaborate with co-workers using Microsoft Exchange, directly on existing Exchange 2000/2003 servers.

Features Overview The Linux desktop solutions included in Novell Ximian Services meet all of the requirements outlined above for an effective desktop environment.

Application Availability. Novell Ximian desktop solutions provide a complete desktop productivity suite. The desktop itself is provided by Ximian Desktop 2. E-mail, calendaring, to-do lists, collaboration tools, and information management are available in Ximian Evolution 1.4. Ximian Connector adds the ability to collaborate with co-workers running Microsoft Exchange and other messaging servers.

The enhanced Ximian edition of the OpenOffice.org suite allows users to create documents, spreadsheets, presentations, and drawings that are compatible with Microsoft Office.

The included Mozilla-based Web browser provides all the latest tools for fast and easy Web browsing. (Another browser option is Galeon, a GNOME Web browser based on the gecko engine used by Mozilla.) With the XD2 Professional Edition, you get all the essential plug-ins to access virtually all print, media, audio, and video Web content: Adobe Acrobat Reader, Real Audio Real Player, Macromedia Flash Player 6, and Java 2 Run-time Environment.

http://www.novell.com/appnotes October 2003 9 In addition to the professional Bitstream fonts bundled with GNOME 2.2, XD2 includes MS-Windows compatible fonts from AGFA, so your applications, documents, and Web pages look their best. (AGFA fonts are available only with Ximian Professional Edition.)

You also get dozens of other applications and tools, including instant messaging (GAIM), conferencing (GNOME-Meeting), 3270 support (x3270), graphics and image editing (GIMP), and much more.

Usability. With Novell Ximian Services, you get a real breakthrough in usability. The integrated desktop provides a consistent look and feel across applications for file management, printing, and other standard tasks. The GNOME 2.2 user interface features intuitive menus, dialogs, and windows that virtually eliminate end-user training requirements. Users can use familiar Windows keyboard shortcuts for saving files, copy/ paste, printing, and more. The Control Center allows users to adjust system preferences for desktop themes, fonts, security, devices, and so on.

The essential task of printing is fast and easy with Novell Ximian Services. XD2 uses the Common UNIX Printing System (CUPS) to automatically detect printers available on the network. The Printer Setup Wizard speeds up the process of printer configuration. Users send and manage print jobs through the familiar print queue interface.

Other usability features include drag-and-drop CD burning and support for the Pango open-source framework for the layout and rendering of internationalized text.

Integration. XD2 provides a tightly integrated working environment. It provides consistent navigation of files, content, and hardware on local systems and across the network. The My Computer feature provides one-click access to files, folders, systems, and more. Users can seamlessly browse, open, and save files on remote file systems, including Windows shares and NFS files through GNOME-VFS integration. And again, integration with the CUPS printing system makes printing simple.

Ximian Evolution, OpenOffice.org, and Galeon have been integrated to provide one-click opening of e-mail attachments, Web pages, and mailto links. As noted above, the Ximian edition of OpenOffice.org supports popular file formats and uses Microsoft Office spreadsheets, presentations, and word processing file formats by default. It uses the GNOME desktop theme and font settings, along with 800 new alpha-blended icons, for user interface consistency. Microsoft-compatible fonts are synchronized with the rest of the GNOME desktop. Support for freedesktop.org Standards includes recent files, startup notification, and improved cut and paste.

Interoperability. Novell Ximian Services provides top-notch interoperability with existing Windows environments. In addition to the default Microsoft Office file formats in OpenOffice, you get support for Network Neighborhood and one-click access to Windows systems, workgroups, and Samba shares, as well as data on UNIX NFS systems. Ximian Evolution supports IMAP, POP3, SMTP, LDAP, and other protocols for use with virtually any messaging server, and the optional Ximian Connector for Microsoft Exchange makes Ximian Evolution a full Exchange 2000 client for e-mail, group scheduling, personal calendar, public folders, global address lists, and more.

http://www.novell.com/appnotes October 2003 10 Manageability. Keep your Ximian, Linux OS, and third party software up-to-date quickly and easily with Red Carpet 2.0. This built-in client for software updating integrates with the Red Carpet Enterprise software management system described earlier in this AppNote. With Red Carpet, managing your Linux desktop and server software is fast, easy, and efficient.

Cost of Ownership. With XD2 and other Linux-based products, the cost of ownership can be significantly lower when compared with their closed-source counterparts. The commercial version of Ximian Desktop 2 is competitively priced, and a free open source version is available for download at http://www.ximian.com/products/desktop/ download.html.

Continued Involvement in Open Source Projects Upon hearing of Novell’s acquisition of Ximian, there is one question that is on just about everyone’s mind: Will Novell continue to support the GNOME and Mono projects that Ximian was helping lead? The answer is yes! These are among the more ambitious projects currently in the open source world, and Novell is committed to supporting them. In fact, it is expected that the addition of Novell’s resources will help accelerate progress in these key open source initiatives.

The GNOME Project GNOME is a free software project that is developing a complete, easy to use desktop for GNU/Linux (more commonly known as Linux), BSD, Solaris, HP-UX and a variety of other Unix and Unix-like operating systems. The GNOME desktop is used by millions of people around the world. More than 700 computer developers, including over 100 full- time, paid developers, contribute their time and effort to the project.

Novell is committed to GNOME as the basis for its Linux desktop endeavors. Current GNOME Foundation board members from Ximian will continue to serve in their roles.

The Mono Project Ximian initiated the Mono Project to provide developers with a set of open source tools for building cross platform .NET applications that run on Windows or any Mono- supported platform, including Linux and UNIX. Mono incorporates key .NET-compliant components, including a C# compiler, a Common Language Runtime just-in-time compiler, and a growing set of class libraries, including ASP.Net and ADO.Net. More than 150 developers from around the world contribute to the Mono Project, and numerous companies are building commercial products using Mono technology. Existing Ximian resources will continue to provide leadership, address long-term projects, and handle complex tasks that require full-time focus.

http://www.novell.com/appnotes October 2003 11 Novell sees Mono as strategically important, especially to its Web Services strategy. With Mono technology, Novell can enable .NET applications to run on Linux, from Web sites and Web services to application servers, desktop applications, and even embedded solutions. This “develop on Windows, deploy on Linux” solution will dramatically improve developer productivity and help enable Linux/UNIX interoperability for emerging .NET applications and environments.

Impact of Ximian Acquisition on Customers and Partners This brings us to the final question regarding Novell’s acquisition of Ximian: What is the impact on Novell customers, as well as Ximian customers and partners?

Novell customers gain compelling new options for introducing and integrating Linux into their environments, whether at the server or desktop level. Customers want to deploy Linux because of cost benefits, control, customization needs, and a variety of other factors, but are concerned about support, integration, and management challenges. Novell provides enterprise class support, services, and tools to unify management of the network across platforms, including Linux. This is a great new option for Novell customers.

The Ximian acquisition also fits right in line with the development of Novell Nterprise Linux Services, as announced in June of 2003. Novell engineers have been working hard on moving the full range of Novell’s network services onto the Linux kernel, and the acquisition will not have an impact on that effort. Ximian’s existing solutions are largely complementary to what Novell has, so the acquisition of Ximian will strengthen the roadmap and offerings that Novell has previously outlined. Where there is potential overlap of some functionality—for example, ZENworks for Servers and Ximian Red Carpet, or Ximian Evolution and GroupWise—we’ll meld the best features together. But we expect such overlaps to be minimal.

Ximian customers will benefit by the integration of Ximian products and their sales and support contacts being added to the world-class, global Novell sales and services organization. Ximian agreements in place with partners such as SuSE and IBM Global Services will continue under Novell. Both companies had been partners of Ximian and Novell respectively; the respective SuSE and IBM reseller agreements will be strengthened and simplified in the overall Novell relationship.

http://www.novell.com/appnotes October 2003 12 Conclusion With the acquisition of Ximian, Novell takes a major step in strengthening its cross- platform strategy, supporting the open source community, and delivering open-source based solutions to its customers. The combination of Ximian and Novell will help to reduce the barriers to adoption of Linux in the enterprise by providing low-cost, high- performance, innovative Linux applications while giving the IT shops confidence they'll have the enterprise-class network management tools, interoperability and world-class support they expect from an experienced enterprise software company like Novell.

Ximian brings to Novell visionary leaders of the open source community and market- leading Linux products, and puts Novell in prime position to effectively engage with the open source community, including actively and strongly supporting the key Ximian- sponsored open source initiatives GNOME and Mono.

Copyright © 2003 by Novell, Inc. All rights reserved.

No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying and recording, for any purpose without the express written permission of Novell.

All product names mentioned are trademarks of their respective companies or distributors.

http://www.novell.com/appnotes October 2003 13 AppNote

Cluster-Enabling DHCP, DNS, and SLP Services in NetWare 6

Dr. Frieder Schmidt Hylton Leigh Technical Specialist Senior Technical Consultant Novell Consulting Novell Consulting [email protected] [email protected]

Thanks to Thomas Lubanski and Joe Azzopardi of Novell Consulting, Germany, and Ken Lenihan and Stuart Thompson of Novell Consulting, U.K., for their invaluable assistance with this AppNote.

This AppNote describes a high-availability implementation of DHCP, DNS, and SLP Directory Agent services on a NetWare 6 cluster.

Contents:

• Introduction • Use of Virtual Servers • Cluster-Enabling a DHCP Server • Cluster-Enabling a DNS Server • Cluster-Enabling a SLP Directory Agent • eDirectory Design Considerations • Conclusion

Top ic Novell Cluster Services, DHCP, DNS, SLP, Directory Agent, high-avail- ability Products Novell Cluster Services 1.6.2 and later Audience network administrators and consultants Level advanced Prerequisite Skills familiarity with Novell Cluster Services, DHCP, DNS, SLP Too ls DNS/DHCP Management Console, ConsoleOne, DSBrowse Sample Code no

http://www.novell.com/appnotes October 2003 14 Introduction Name resolution—the process of determining a network resource’s IP address given its name via DNS or SLP—is crucial to any pure IP environment. Equally vital is the ability to dynamically configure clients with valid IP parameters DHCP. Hence, a highly- available and fault-tolerant implementation of the following services would clearly be beneficial:

• DHCP (Dynamic Host Configuration Protocol)

• DNS (Domain Name Services)

• SLP (Service Location Protocol) Directory Agent

With the release of Novell Cluster Services (NCS), Novell provided a template for cluster- enabling a DHCP Server. However, a DHCP Server that is cluster-enabled by using this template will always advertise itself using the primary IP address of the node the resource is running on. If the DHCP Server should fail-over to another node and a client should subsequently do a renew request, the DHCP Server would be unreachable for that client.

While the arguments for clustering DNS may be academic, we consider having a highly- available Primary DNS Server a benefit. NCS does not provide a template for cluster- enabling a DNS Server.

For fault tolerance, Novell Consulting normally recommends setting up two SLP Directory Agents (DAs) for any SLP Scope. However, this approach has the drawback of collision objects in eDirectory that occur when the same SLP entries are being created by the two DAs at the same instance. A cluster-enabled SLP DA would avoid this name collision problem. Again, NCS does not provide a template for cluster-enabling the SLP DA.

In this AppNote, we will demonstrate how to cluster-enable DHCP, DNS, and a SLP DA. As an example configuration, we’ll use a four-node cluster named CL1 consisting of nodes CLU01, CLU02, CLU03, and CLU04. The various IP services will be assigned to the four nodes as outlined in Table 1.

Table 1: Assignment of name resolution services to the cluster nodes.

Host Server

Service CLU01 CLU02 CLU03 CLU04

DHCP ••

DNS ••

SLP DA ••

http://www.novell.com/appnotes October 2003 15 The procedures described were tested on NetWare 6 with Support Pack 2 applied. The DHCPSRVR.NLM must be v3.12.02, dated November 25, 2002, or newer.

Use of Virtual Servers One of the facilities of Novell Cluster Services that makes the configuration of these services possible is the ability to create “virtual” NCP servers. By creating these objects, the configuration of the service can be “virtualised” from the actual physical nodes that the service is run on.

The key to successfully clustering these IP services is to identify how the service “discovers” its configuration when it is loaded on the server console. The default operating mode is to examine the server environment, determine the server name and eDirectory Context, and then examine the server object in eDirectory to determine the configuration as required for the service. By configuring the service on a Virtual Server, all of the required service configuration information will be written to the Virtual Server object rather than the actual physical cluster node.

All that then remains to be done is to tell the service when it loads to look at the Virtual Server rather than the NCP Server object of the node it is running on. The DHCP Service supports the ability to specify which NCP Server to read for its configuration. However, the DNS and SLP DA Services do not provide this level of support. Therefore, as a workaround, you will have to manually modify the physical cluster nodes to have the same attributes that the Virtual Servers have.

So, you may ask, what is the advantage of using a virtual server? The main advantage is that the configuration of the service is held in one place, in a single eDirectory object. Using a Virtual Server object for the configuration of the DNS and SLP DA Services gives you a single point of configuration. That way, you avoid the hassles of maintaining multiple configurations.

Creating the Virtual Server To create a virtual NCP Server to hold the IP services configuration information, we created a small NSS (NetWare Storage System) Pool and NSS Volume. We then converted this volume into a cluster-enabled volume.

In the process of creating a Cluster-Enabled Volume object, a Virtual NCP Server is created; it is this virtual server that we will use when configuring the various services.

Note: In this Appnote, the same virtual server is used for the configuration of all three services. However, you can choose any virtual server in the cluster as the host server.

http://www.novell.com/appnotes October 2003 16 Cluster-Enabling a DHCP Server There are four basic steps to be completed to cluster a DHCP Server:

• Create the DHCP Server on a Virtual Server in eDirectory

• Create the DHCP Cluster Resource

• Modify the DHCP Cluster Resource load and unload scripts

• Test the clustered DHCP service

Creating the DHCP Server The first step is to create a new DHCP Server object in eDirectory. You can do this by using the Java-based Novell DNS/DHCP Management Console that comes with NetWare 6. The host server for the DHCP Service will be the virtual server that was set up earlier.

The NSS pool/volume that is hosted on the virtual server is not needed to cluster-enable the DHCP Server. However, you could export your DNS/DHCP configuration to this volume as an additional backup.

In this example, we used a pool named IPSERVICES containing the volume DNSDHCP. The virtual server for this resource is named CL1-IPSERVICES- VS. This server is used as the host server for the DHCP Server. The DHCP Server object will be named DHCP_CL1-IPSERVICES-VS and will be automatically placed in the container where the cluster object resides.

Figure 1 shows the process of creating the DNCP Server object from within the DNS/ DHCP Management Console.

http://www.novell.com/appnotes October 2003 17 Figure 1: Creating a new DHCP Server object.

Once the DHCP Server has been created, inspection of the attributes of CL1- IPSERVICES-VS on the other tab will reveal that two new attributes have been added when the server was selected as the host server for the DHCP Server. These attributes are “DNIP: LocatorPtr” and “DNIP:DHCP Server Reference” (see Figure 2).

http://www.novell.com/appnotes October 2003 18 Figure 2: New attributes created on the DHCP host server.

For the DHCP Server to operate properly, these two attributes must be added to the NCP Server object of any cluster node that is intended to host the DHCP Service resource. The attributes contain the values that are required for the DHCP Service to determine the appropriate configuration parameters. This will be done automatically by means of the “CLUSTER DHCP” command the first time the resource is set to the Online status on a particular node.

Creating the DHCP Service Cluster Resource The next step is to create a cluster resource for the new DHCP Server using the DHCP Server template of NCS. Figure 3 shows how to do this.

http://www.novell.com/appnotes October 2003 19 Figure 3: Creating a Cluster Resource for the DHCP Service.

Modifying the DHCP Cluster Resource Scripts At this point, you need to modify the load and unload scripts for the DHCP Service resource to match the required configuration.

Add a secondary IP address to the load script and add the “--servaddr=sec.IP” parameter to the DHCPSRVR command line. These configuration changes will force the DHCP Service to respond to any DHCP request with a particular IP address, and read its configuration from the virtual server.

Note: There are two hyphens in front of “servaddr’ and no spaces around the “ = ”. This parameter is only available with DHCPSRVR.NLM v 3.12.02 and newer.

Figure 4 shows a sample load script modified with the secondary IP address and “-- servaddr” parameter.

http://www.novell.com/appnotes October 2003 20 Figure 4: Modified load script for the DHCP Service.

Note: The “-d” options seen in this and other sample scripts in this AppNote are included for testing and debugging purposes. Once it has been determined that the services are working as desired, these options can be removed.

In the unload script, add the command to unbind the secondary IP address after unloading DHCPSRVR, as shown in Figure 5.

http://www.novell.com/appnotes October 2003 21 Figure 5: Modified unload script for the DHCP Service.

As the final step, configure the nodes of the cluster on which this resource is intended to run. Figure 6 shows nodes CLU01 and CLU02 being assigned to host the DHCP Service, following our resource assignment plan detailed earlier in Table 1.

http://www.novell.com/appnotes October 2003 22 Figure 6: Node assignments for the DHCP Service.

The cluster resource can now be brought online. Configuration of the DHCP Service can take place at this time, creating the ranges, subnet, and DHCP options as normal.

Testing the DHCP Service Resource When you bring up the DHCP resource on any of the nodes assigned to it, check the information displayed on the DHCP Server Debug screen to confirm that the DHCP configuration is being read from the virtual server. Figure 7 shows an example of the debug information that will be displayed for a correct configuration.

http://www.novell.com/appnotes October 2003 23 Figure 7: The DHCP Server debug screen.

The DHCP Server will respond using the IP address specified in the “--servaddr” parameter. It will always be available for client requests as long as the resource is online on any node. You can easily verify this by running the “ipconfig /all” command from a client workstation. Figure 8 shows that the DHCP Server is being advertised with its secondary IP address.

http://www.novell.com/appnotes October 2003 24 Figure 8: DHCP Server being advertised with its secondary IP address.

Cluster-Enabling a DNS Server The overall process for cluster-enabling DNS is similar to clustering the DHCP Service. However, while the DHCP Service directly supports the definition of a secondary IP address and the virtual server when launched, DNS requires a bit of a workaround to ensure that the service reads the correct configuration when it is loaded. The main steps are as follows:

• Create the DNS Server object

• Modify the NCP Server object of the physical servers

• Create the DNS Server Cluster Resource

http://www.novell.com/appnotes October 2003 25 Creating the DNS Server Using the Novell DNS/DHCP Management Console, create a new DNS Server object, selecting any virtual server in the cluster as the host server. In this example, we again chose the virtual server for the IPSERVICES resource in the cluster CL1 (see Figure 9). The DNS Server object will be named DNS_CL1- IPSERVICES-VS and will automatically be placed in the container where the cluster object resides.

Figure 9: Creating a new DNS Server object.

Modifying the NCP Server Object of the Physical Servers If you now inspect the attributes of the virtual server chosen as the host for the DNS Server (using ConsoleOne or DSBrowse), you will discover that in addition to “DNIP: LocatorPtr” and “DNIP:DHCP Server Reference” attributes that were created during the DHCP configuration, there is the new attribute named “DNIP:DNS Server Reference” (see Figure 10).

http://www.novell.com/appnotes October 2003 26 Figure 10: Attributes created for the virtual server CL1-IPSERVICES-VS.

This attribute is used to determine which eDirectory DNS Server object the DNS Service will read for its configuration.

According to our plan, we will use CLU03 and CLU04 as host servers for the DNS Server resource. As there is no “CLUSTER DNS” command that would automatically add the “DNIP:LocatorPtr” and the “DNIP:DNS Server Reference” attributes to the NCP Server object for these two nodes, you need to add both attributes manually.

Figure 11 shows the “DNIP:DNS Server Reference” and “DNIP:LocatorPtr” attributes being added to physical server CLU03.

http://www.novell.com/appnotes October 2003 27 Figure 11: DNS attributes being added to physical server CLU03.

These attributes must point to exactly the same objects as the corresponding attributes of the virtual server. Make sure you point to the DNS Server object and not to the NCP Server object of the virtual server hosting the DNS Service.

Figure 12 shows the attributes being added to physical server CLU04.

http://www.novell.com/appnotes October 2003 28 Figure 12: DNS attributes being added to physical server CLU04.

If you should choose to use the same node for the DHCP Service and the DNS Service, you are only required to add "DNIP:DNS Server Reference" attribute.

“DNIP:LocatorPtr” will have been automatically added to the NCP Server object of the physical servers the first time the DHCP resource was launched on a node.

Creating the DNS Server Cluster Resource The next step is to create a cluster resource for the new DNS Server using the “Generic IP Service” template of NCS (see Figure 13).

Figure 13: Creating a resource for the DNS Server.

http://www.novell.com/appnotes October 2003 29 Configuration of the DNS Server Resource Next, simply add the secondary IP address and the command to load NameD.NLM to the load script of the newly-created resource (see Figure 14).

Figure 14: Modified load script for the DNS resource.

The unload script simply contains the commands to unload NameD.NLM and to remove the secondary IP address (see Figure 15).

http://www.novell.com/appnotes October 2003 30 Figure 15: Modified unload script for the DNS resource.

The last configuration step is to assigning the nodes of choice to your newly-created DNS resource, as shown in Figure 16.

Figure 16: Node assignment for the DHCP Service.

http://www.novell.com/appnotes October 2003 31 Testing the DNS Service If the NCP Server object for the nodes you selected as host for the DNS Service has not been properly modified with the required attributes, NameD.NLM will not be able to load because it is lacking any reference to the DNS configuration information in eDirectory. Figure 17 shows the -328 errors that will be displayed on the system console screen if this is the case.

Figure 17: System console screen showing -328 errors while attempting to load NameD.NLM.

Figure 18 shows the error messsages that will be displayed on the NameD.NLM screen in the case of an incorrect configuration.

Figure 18: Error messages displayed on the NameD screen.

http://www.novell.com/appnotes October 2003 32 With the “DNIP:DNS Server Reference” and the “DNIP:LocatorPrt” attributes added to the NCP Server object of each physical server, NameD will load without errors as it is able to follow the attribute pointers that reference the DNS Server object configured for the virtual server, as shown in Figure 19.

Figure 19: NameD loaded successfully by reading its configuration information from the virtual server.

Cluster-Enabling a SLP Directory Agent The clustering of the SLP DA is similar to that of DNS. It also requires modification of the cluster node NCP Servers, as there is no mechanism to force the SLP DA to read its configuration from a specific NCP Server.

The workaround is to configure the cluster node NCP Server object with the appropriate attributes to reference the SLP DA object. Once this is in place, the SLP DA loading on the nodes has a mechanism to determine the SLP DA object that it is to function as.

The steps for cluster-enabling a SLP DA are:

• Create the SLP NDS objects

• Modify the NDS Server object of the physical servers

• Create the SLP DA cluster resource

http://www.novell.com/appnotes October 2003 33 Creating the SLP NDS Objects First, create the SLP Scope Unit objects as required for the SLP design to be implemented in a separate container. Then you can create the required SLP DA objects in the same container, selecting a different virtual server in the cluster as host server for each DA (one DA per scope).

In this example, we use a single scope (NOV-global) serviced by NOV-SLPDA. We selected the same host server as for the DHCP Service and the DNS Service. Figure 20 shows the creation of NOV-SLPDA.

Figure 20: Creating an SLP Directory Agent object.

Figure 21 shows the assignment of the NOV-global scope to this object.

http://www.novell.com/appnotes October 2003 34 Figure 21: Assignment of the SLP scopes to be serviced by the SLP DA.

Modifying the NCP Server Object of the Physical Servers If you inspect the SLP tab on the Properties page of the virtual server CL1-IPSERVICES- VS using ConsoleOne, you will notice that it is pointing to the Directory Agent NOV- SLPDA (see Figure 22).

Note: Make sure you have the latest SLP snap-ins properly installed!

http://www.novell.com/appnotes October 2003 35 Note:

Figure 22: SLP Directory Agent DN attribute of the virtual server CL1-IPSERVICES-VS.

Again, in order for the SLP DA to work, you need to add this attribute to the NCP Server object of the physical node servers that the SLP DA will be run on. Figure 23 shows the attribute being added to physical server CLU02.

http://www.novell.com/appnotes October 2003 36 Figure 23: SLP Directory Agent DN attribute added to physical server CLU02.

The same operation needs to be applied to physical server CLU03 (see Figure 24).

Figure 24: SLP Directory Agent DN attribute added to physical server CLU03.

http://www.novell.com/appnotes October 2003 37 Warning: Do not modify the Host Server attribute of the SLP DA object. This would break the link between the virtual server and the SLP DA!

Creating the SLP DA Cluster Resource With the SLP DA configuration in place, the next step is to create a new cluster resource using the Generic IP Service template (see Figure 25).

Figure 25: Creating a resource for the SLP Directory Agent.

Configuration of the SLP DA Resource With this configuration, the SLP DA will run on all modified nodes. However, it will still reply with the primary IP address of the host server, even if queried on the secondary IP address.

For this to change, you need to set the following parameter before you load the SLP DA:

SLP Agent IP Address = FOLLOW This will force the SLP DA to respond to SLP registrations or queries using the destination IP address in the query or request.

Figure 26 shows the help screen information for the SLP Agent IP Address parameter.

http://www.novell.com/appnotes October 2003 38 Figure 26: Help screen for the SLP Agent IP Address parameter.

It is recommended that you add this setting to the resource load script after the secondary IP address has been added. However, if this parameter is already set to FOLLOW, the resource would become comatose. To avoid this, use the IGNORE_ERROR prefix, as shown in Figure 27. Loading the SLP DA should be the last command in the load script.

Figure 27: Load script for the SLP DA resource.

http://www.novell.com/appnotes October 2003 39 The unload script is simply the reverse of the load script (see Figure 28).

Figure 28: Unload script for the SLP DA resource.

The node’s configuration constitutes the final step of the creation of the SLP DA resource (see Figure 29).

http://www.novell.com/appnotes October 2003 40 Figure 29: Node assignment for the SLP DA Service.

SLP Configuration with a Cluster-Enabled SLP DA All the servers (including the servers hosting the SLP DA) that are registering their services with the cluster-enabled SLP DA will use the same SLP.CFG containing only the secondary IP address of the cluster-enabled DA.

The SLP scope and the SLP DA should be configured on the client. This is best achieved by using DHCP options 78 and 79, respectively. Detailed information about the SLP configuration of the NetWare Client is given in TID #10014466, “Configuring SLP for the NetWare Client,” available at http://support.novell.com.

Testing the SLP Service If the “SLP Directory Agent DN” attribute has not been added to the NCP Server object of the physical servers, the SLP DA will not be able to read its configuration from eDirectory and query whether to set up the default configuration, as shown in Figure 30.

http://www.novell.com/appnotes October 2003 41 Figure 30: Query for setup of default configuration if SLP Directory Agent DN attribute has not been added to physical server.

By answering “N,” you instruct SLPDA.NLM to exit.

If you do not set the SLP Agent IP Address parameter to FOLLOW, you will get the shown in Figure 31.

Figure 31: The SLP DA fails to load because SLP Agent IP Address is not set to FOLLOW.

With the SLP Directory Agent DN attribute added to the NCP Server object of the physical server and the SLP Agent IP Address set to FOLLOW, the SLP DA will load using the proper SLP DA and SLP Scope Unit objects. Figure 32 shows the information that is displayed on the Logger Screen for a successful configuration.

http://www.novell.com/appnotes October 2003 42 Figure 32: The SLP DA loads successfully after the SLP Directory Agent DN attribute has been added to the physical server objects.

By running the SLPINFO command on a Windows workstation, you can easily verify that the client is obtaining SLP information from the cluster-enabled SLP DA via the secondary IP address of the cluster resource. (SLPInfo.EXE is installed along with the Novell Client software.) Figure 33 shows the correct SLP information for our example configuration.

http://www.novell.com/appnotes October 2003 43 Figure 33: SLP DA running on secondary IP address. eDirectory Design Considerations When cluster-enabling name resolution, it is strongly recommended that you incorporate the following eDirectory design considerations:

• A separate container for the DHCP information

• A separate container for the DNS information

• A separate container for the SLP information

Each of these containers must be partitioned, and every server providing any of these services must hold a replica of the corresponding container.

As always, master replicas should not be stored on a cluster. The use of a dedicated “NDS master” server is highly recommended instead.

Should you elect to use a multi-scope approach, proper DA-to-DA communication requires that all SLP DA objects be placed into the same container.

http://www.novell.com/appnotes October 2003 44 Conclusion This AppNote has demonstrated how to properly configure the DHCP, DNS, and SLP DA services in NetWare 6 for a cluster-enabled implementation. By following the outlined procedure, you can ensure that these vital services are always available to your network clients.

For more information about Novell Cluster Services, see:

http://www.novell.com/products/clusters/ncs/

Copyright © 2003 by Novell, Inc. All rights reserved.

No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying and recording, for any purpose without the express written permission of Novell.

All product names mentioned are trademarks of their respective companies or distributors.

http://www.novell.com/appnotes October 2003 45 AppNote

Creating ZENworks Inventory Reports Using the Crystal Reports Designer

J Somakala Senior Software Engineer Novell Inc. [email protected]

This AppNote explains how to create inventory reports from Novell ZENworks for Desktops and ZENworks for Servers using the Crystal Reports Designer included in Crystal Reports 8.0 and 8.5. Crystal Reports is a third-party product for producing customized reports from various types of databases.

Contents: • Introduction • Prerequisite Procedures • Inventory Database Schema • Creating Inventory Reports with Crystal Reports Designer • Advanced Inventory Report Creation • Conclusion

Top ic s inventory reports, ZENworks for Desktops, ZENworks for Servers, Crystal Reports, databases Products Novell ZENworks for Desktops 4, Novell ZENworks for Servers 3, Novell ZENworks 6 Audience ZENworks administrators Level intermediate Prerequisite Skills basic knowledge of database fundamentals, familiarity with ZENworks inventory reporting Too ls Crystal Reports 8.0 and 8.5 Sample Code no

http://www.novell.com/appnotes October 2003 46 Introduction A solution for creating customized Inventory reports using Crystal Decisions’ Crystal Reports for Novell’s ZENworks for Desktops 4, ZENworks for Servers 3, and ZENworks 6 has been developed. This AppNote explains how ZENworks administrators can create a variety of reports from the ZENworks Inventory database with minimal effort.

The solution also allows user-defined reports to be added to the Novell ConsoleOne utility to simplify the process of compiling Inventory data for the administrator. The instructions on how to do this are given in the Administration Guides for ZENworks for Desktops 4, ZENworks for Servers 3, and ZENworks 6. (See “For Additional Information” at the end of this AppNote for the Novell online documentation URLs.)

Throughout this AppNote, references to ZENworks for Desktops 4 and ZENworks for Servers 3 will be abbreviated as ZfD and ZfS, respectively.

Note: Although the views and attributes described in this AppNote are specific to ZfD 4, becoming familiar with the tasks described in this AppNote should help you in designing reports for the Inventory database in ZENworks for Desktops 3.2.

This AppNote assumes that the user has installed Crystal Reports 8.0 or above, and has a basic knowledge of designing reports using the Crystal Reports Designer. It also assumes that the user has basic knowledge of database fundamentals.

Prerequisite Procedures Before you proceed with the instructions in this AppNote for creating Inventory reports with the Crystal Reports Designer, you must check your software versions and configure the ODBC driver to connect to the appropriate Inventory Database server.

Software Versions The instructions given in this AppNote are based on the following ZENworks versions:

• ZENworks for Desktops 4 with Support Pack 1 (SP1)

• ZENworks for Servers 3 with SP1 or SP2

• ZENworks 6

If you do not have Crystal Reports 8.0, it can be purchased from the company’s Web site at http://www.crystaldecisions.com or from your local software retailer.

http://www.novell.com/appnotes October 2003 47 Configuring ODBC You need to configure the ODBC driver to connect to the appropriate Inventory Database server on the machine where Crystal Reports Designer is installed.

Before you can create reports using the Crystal Report Designer, the ODBC client for Sybase, Oracle, or Microsoft SQL must be installed on your workstation. You can install the Sybase ODBC driver from the ZfD or ZfS Companion CD. To install the Sybase ODBC driver, copy the \ODBC\SYBASE\SYBASEODBC.ZIP file from the Companion CD to a local drive. For installation instructions, refer to the ODBCREADME.TXT file in the same directory on the Companion CD.

After installing the appropriate ODBC client, you need to configure the ODBC driver on your workstation. To configure the ODBC driver, follow these steps (details may vary depending on the version of Windows you have):

1. Click Start and select Settings > Control Panel > Administrative Tools. Double-click the “Data Sources (ODBC)” icon and click the Add button. 2. In the list of ODBC drivers, select the one for the database you want to connect to.

3. Click Finish.

4. Enter the Data Source Name as “ZenInventory” (or whatever DSN you want) and fill in the database connection details (see Figure 1).

Note: If you use the DSN name of “ZenInventory”, you can add the reports you design to the existing Inventory reports that can be viewed using ConsoleOne. More details can be found in the ZfD and ZfS Administration Guides.

Figure 1: ODBC Driver Setup screen.

5. Click OK. The DSN you entered should now appear in the list of User Data Sources.

6. Click OK to close the ODBC configuration utility.

http://www.novell.com/appnotes October 2003 48 Inventory Database Schema The ZENworks Inventory database is modeled after the CIM schema, a standard information model developed by the Desktop Management Task Force (DMTF).

The main view in the ZENworks Inventory database is CIM.UnitaryComputer- System. This view contains all the workstations and servers scanned for Inventory in ZfD and ZfS. All other details scanned, such as processor, disk drive, operating system, and so on, are exposed through relevant views and are linked to CIM.UnitaryComputerSystem using association views. Each of these classes has specific attributes which are scanned for. The entire set of attributes scanned, the views, and their link to CIM.UnitaryComputerSystem are shown in Table 1.

In the table, the LHS view links to the RHS view using the association view. “L” in the association view is the attribute name which links to id$ of the LHS view. “R” in the association view is the attribute name which links to id$ of the RHS view. So, to get the OS of a particular machine, by looking in the first column you see that you have to link

CIM.UnitaryComputerSystem.id$ = CIM.InstalledOS.GroupComponent and

CIM.InstalledOS.PartComponent = ZENworks.ZENOperatingSystem.id$

Entries marked with an asterisk (*) and highlighted in red indicate a further link. For example, to get Hard Disk drive details, the SQL statement would have the condition:

CIM.UnitaryComputerSystem.id$ = CIM.SystemDevice.GroupComponent and

CIM.SystemDevice.PartComponent = ZENworks.ZENDiskDrive.id$ and

ZENworks.ZENDiskDrive.id$ = CIM.Realizes.Dependent and

CIM.Realizes.Antecedent = ZENworks.PhysicalDiskDrive.id$

http://www.novell.com/appnotes October 2003 49 Table 1: Links between various views in the Inventory database.

LHS View Association View RHS View

CIM.UnitaryComputerSystem CIM.InstalledOS ZENworks.ZenOperatingSystem Name L:GroupComponent (can be used for common data across PrimaryOwnerName R:PartComponent Windows and NetWare) PrimaryOwnerContact Windows: ZENworks.WinOperatingSystem CodePage OSType InstallDate Caption OtherTypeDescription Role TotalVirtualMemorySize TotalVisibleMemorySize Version NetWare: ZENworks.NetWareOperatingSystem (in addition to the above attributes) AccountingVersion InternetBridgeSupport MaxNumberOfConnections PeakConnectionsUsed PrintServerVersion QueuingVersion RevisionLevel SecurityRestrictionLevel SFTLevel TTSlevel VAPVersion VirtualConsoleVersion InternalNetworkNumber

CIM.UnitaryComputerSystem CIM.InstalledSoftware ZENworks.InventoryScanner Element Version L:System LastScanDate R:Software InventoryServer ScanMode

CIM.UnitaryComputerSystem ManageWise.Designates ManageWise.DNSName L:Host Label R:Designation

CIM.UnitaryComputerSystem ManageWise.Designates ManageWise.MSDomainName L:Host Label R:Designation

CIM.UnitaryComputerSystem ManageWise.Designates ManageWise.NDSName L:Host Label R:Designation Tree

http://www.novell.com/appnotes October 2003 50 LHS View Association View RHS View

CIM.UnitaryComputerSystem CIM.HostedAccessPoint CIM.IPProtocolEndPoint L:Antecedent Address R:Dependent SubnetMask

CIM.UnitaryComputerSystem CIM.HostedAccessPoint CIM.IPXProtocolEndPoint L:Antecedent Address R:Dependent

CIM.UnitaryComputerSystem CIM.HostedAccessPoint CIM.LANEndPoint L:Antecedent MACAddress R:Dependent

CIM.UnitaryComputerSystem CIM.SystemBIOS ZENworks.BIOS L:GroupComponent Caption R:PartComponent InstallDate SerialNumber Version Manufacturer PrimaryBIOS BIOSIDBytes Size

CIM.UnitaryComputerSystem CIM.ComputerSystem- CIM.Processor Processor DeviceID L:GroupComponent Role R:PartComponent Family OtherFamilyDescription UpgradeMethod MaxClockSpeed CurrentClockSpeed

CIM.UnitaryComputerSystem CIM.ComputerSystem- ZENworks.SystemInfo Package Description L:Dependent Model R:Antecedent SerialNumber Tag ManagementTechnology

CIM.UnitaryComputerSystem CIM.SystemDevice CIM.PointingDevice* L:GroupComponent Name R:PartComponent PointingType NumberOfButtons

CIM.PointingDevice* CIM.AllocatedResource CIM.IRQ L:Dependent IRQNumber R:Antecedent

CIM.UnitaryComputerSystem CIM:SystemDevice ZENworks.ZENKeyboard L:GroupComponent Description R:PartComponent NumberofFunctionKeys Layout Delay TypematicRate Subtype

http://www.novell.com/appnotes October 2003 51 LHS View Association View RHS View

CIM.UnitaryComputerSystem CIM.SystemDevice ZENworks.Bus L:GroupComponent Description R:PartComponent Name BusType Version

CIM.UnitaryComputerSystem CIM.SystemDevice ZENworks.VideoAdapter L:GroupComponent Description R:PartComponent VideoMemoryType MaxMemorySupported CurrentBitsperPixel CurrentHorizontalResolution CurrentVerticalResolution MaxRefreshRate MinRefreshRate VideoArchitecture NumberOfColorPlanes ChipSet DACType ProviderName

CIM.UnitaryComputerSystem CIM.SystemDevice ZENworks.NetworkAdapter L:GroupComponent Caption R:PartComponent Description InstallDate Name PermanentAddress MaxSpeed AutoSense AdapterType ProviderName

CIM.UnitaryComputerSystem CIM.SystemDevice ZENworks.SoundAdapter L:GroupComponent Description R:PartComponent Name ProviderName

CIM.UnitaryComputerSystem CIM.SystemDevice ZENworks.ZENPOTSModem L:GroupComponent Description R:PartComponent Name DeviceID ProviderName

CIM.UnitaryComputerSystem CIM.SystemDevice CIM.Battery* L:GroupComponent Name R:PartComponent Chemistry DesignCapacity

CIM.Battery* CIM.Realizes CIM.PhysicalComponent L:Dependent InstallDate R:Antecedent Manufacturer SerialNumber

http://www.novell.com/appnotes October 2003 52 LHS View Association View RHS View

CIM.UnitaryComputerSystem CIM.SystemDevice CIM.PowerSupply L:GroupComponent Description R:PartComponent TotalOutputPower

CIM.UnitaryComputerSystem CIM.SystemDevice CIM.DisketteDrive* L:GroupComponent R:PartComponent

CIM.DisketteDrive* CIM.Realizes ZENworks.PhysicalDiskette L:Dependent Description R:Antecedent Manufacturer Capacity PhysicalCylinders PhysicalHeads SectorsPerTrack

CIM.DisketteDrive* CIM.Realizes ZENworks.LogicalDiskette L:Dependent DeviceID (DriveLetter) R:Antecedent

CIM.UnitaryComputerSystem CIM.SystemDevice ZENworks.ZENDiskDrive* L:GroupComponent Removable R:PartComponent

ZENworks.ZENDiskDrive* CIM.Realizes ZENworks.PhysicalDiskDrive L:Dependent Description R:Antecedent Manufacturer Capacity PhysicalCylinders PhysicalHeads SectorsPerTrack

CIM.UnitaryComputerSystem CIM.HostedFileSystem CIM.LocalFileSystem* L:GroupComponent FileSystemSize R:PartComponent AvailableSpace FileSystemType

CIM.LocalFileSystem* CIM.ResidesOnExtent ZENworks.LogicalDiskDrive L:Dependent Caption (Volume Label) R:Antecedent DeviceID (Drive Letter) VolumeSerialNumber

CIM.UnitaryComputerSystem CIM.SystemDevice CIM.CDROMDrive* L:GroupComponent R:PartComponent

CIM.CDROMDrive* CIM.Realizes ZENworks.PhysicalCDROM L:Dependent Caption R:Antecedent Description Manufacturer

CIM.CDROMDrive* CIM.MediaPresent ZENworks.LogicalCDROM L:Antecedent DeviceID (Drive Letter) R:Dependent

http://www.novell.com/appnotes October 2003 53 LHS View Association View RHS View

CIM.UnitaryComputerSystem ZENworks.InstalledProduct CIM.Product* L:ComputerSystem IdentifyingNumber R:Product Name Vendor Version

CIM.Product* ZENworks.Installed- CIM.Directory Directory Name (Location) L:Product R:Directory

CIM.UnitaryComputerSystem ZENworks.InstalledDriver CIM.VideoBiosElement L:System InstallDate R:Software Version Manufacturer IsShadowed

CIM.UnitaryComputerSystem ZENworks.InstalledDriver ZENworks.NetworkAdapterDriver L:System Description R:Software Name Version

CIM.UnitaryComputerSystem ZENworks.InstalledDriver ZENworks.PointingDeviceDeviceDriver L:System Name R:Software Version

CIM.UnitaryComputerSystem CIM.InstalledSoftware- ZENworks.NetWare Client Element Version L:System R:Software

CIM.UnitaryComputerSystem CIM.ComputerSystemIRQ CIM.IRQ L:System IRQNumber R:Software Availability TriggerType Shareable

CIM.UnitaryComputerSystem CIM.SystemDevice CIM.CacheMemory* L:GroupComponent ErrorMethodology R:PartComponent Level WritePolicy CacheType LineSize ReplacementPolicy ReadPolicy Associativity

CIM.CacheMemory* CIM.RealizesExtent CIM.PhysicalMemory L:Dependent Speed R:Antecedent Capacity

http://www.novell.com/appnotes October 2003 54 LHS View Association View RHS View

CIM.UnitaryComputerSystem CIM.ComputerSystem- CIM.DMA Package Description L:Dependent DMAChannel R:Antecedent Availability BurstMode

CIM.UnitaryComputerSystem CIM.ComputerSystem- CIM.Card* Package L:Dependent R:Antecedent

CIM.Card* CIM.CardInSlot CIM.Slot L:Dependent Description R:Antecedent MaxDataWidth ThermalRating

CIM.UnitaryComputerSystem CIM.ComputerSystem- ZENworks.MotherBoard Package Description L:Dependent Manufacturer R:Antecedent HostingBoard NumberOfSlots

CIM.UnitaryComputerSystem CIM.SystemDevice ZENworks.ParallelPort* L:GroupComponent Name R:PartComponent DMASupport Address

ZENworks.ParallelPort* CIM.AllocatedResource CIM.IRQ L:Dependent IRQNumber R:Antecedent

CIM.UnitaryComputerSystem CIM.SystemDevice ZENworks.SerialPort* L:GroupComponent Name R:PartComponent Address

ZENworks.SerialPort* CIM.AllocatedResource CIM.IRQ L:Dependent IRQNumber R:Antecedent

CIM.UnitaryComputerSystem Managewise.Current- Managewise.User LoginUser Name L:Client R:Owner

CIM.UnitaryComputerSystem Managewise.LastLogin- Managewise.User User Name L:Client R:Owner

If you have custom attributes in your database, you can use the view ZENworks.CustomInformation.

http://www.novell.com/appnotes October 2003 55 Creating Inventory Reports with Crystal Reports Designer In Crystal Reports Designer, the creation of reports first involves walking through the entire database to choose relevant views, which will be used in the creation of the report. As explained above, the ZENworks Inventory database, which is modelled on the CIM schema, has views which are exposed to the user for ease of use. Hence all of your selections will involve views in the Inventory database.

As an example, suppose you need a report on Processor details. The steps for creating such a report are given below.

1. If you observe the database schema as published in the Administration Guide for ZFD or ZFS, you can find the link of the processor-relevant views (refer to Table 1 for the view details) expressed as shown in Figure 2.

CIM_Processor

Stepping, DeviceID, Family OtherFamilyDescription, MaxClockSpeed Role, UpgradeMethod

PartComponent * ComputerSystemProcessor

GroupComponent 1

CIM_UnitaryComputerSystem

Figure 2: Processor-related views in the Inventory database schema.

2. The names “CIM_UnitaryComputerSystem”, “CIM_Processor” and associations like “ComputerSystemProcessor” stand for names of views in the database. The actual names of the views are CIM.UnitaryComputerSystem, CIM.Processor, and CIM.ComputerSystemProcessor, respectively.

Note: Oracle treats all table and view names in a case-sensitive manner. If you are designing a report that must work across databases, it is preferable to start the creation of the report on an Oracle database. By following the syntax for Oracle, you can use the report across databases.

http://www.novell.com/appnotes October 2003 56 Referring to Table 1, you can find the information shown in Figure 2 represented as a row entry:

CIM.UnitaryComputerSystem CIM.ComputerSystemProcess CIM.Processor L:GroupComponent Current Clock Speed, R:PartComponent Device ID, Maximum Clock Speed, OtherFamilyDescription, Processor Family, Processor Stepping, Role, Upgrade Method

As shown in Figure 3, choose a view and name it with a user-friendly alias in Crystal Reports Designer.

Figure 3: Selection of views from the database to use in the report.

3. When linked in Crystal Reports Designer, your selections will appear as shown in Figure 4.

http://www.novell.com/appnotes October 2003 57 Figure 4: Database linking for Processor data in Crystal Reports.

One thing to watch out for here is that you must undo the option in Designer for Default linking before you link views belonging to the Inventory database. Default linking creates links between attributes with the same name and type across views. Inventory views have attributes like id$, class$, Name, and so on, which are common but cannot be linked together. If you have specified links but haven’t disabled the Default option, drop all the default links first before you create the relevant links. The linking can be done based on the simple logic explained above, by using the cardinality of the association and the rule to follow while translating it to a view link.

4. Once you have finished linking views, select relevant attributes on the page shown in Figure 5. If you don’t use the Report Expert, you can drag and drop the attributes onto the report design page.

http://www.novell.com/appnotes October 2003 58 Figure 5: Selecting attributes for display.

5. Click Finish to see a preview of the report. An example preview is shown in Figure 6.

Figure 6: Preview of a Processor report.

http://www.novell.com/appnotes October 2003 59 As another example, Figure 7 shows the linking that would be done to create reports for extracting software information.

Figure 7: Database linking for a Software report.

6. Figure 8 shows how the data would look on the design page for this software report.

Figure 8: Design page for a Software report.

http://www.novell.com/appnotes October 2003 60 Hopefully these examples have given you a good idea of how to use Crystal Reports Designer to create basic Inventory reports. You can explore the various options in Crystal Reports Designer to group the data, sort on relevant attributes, and include filters for the data to be viewed. Crystal Reports also has the ability to export data to various popular formats such as Microsoft Word, HTML, CSV, and so on. (For more information, refer to the Crystal Reports documentation.)

Advanced Inventory Report Creation This section discusses certain detailed points regarding the usage of the Inventory database to create advanced reports.

Enumerated Data Types In the above report preview (Figure 8), for Processor.Family you might have expected to see something like “Pentium III” rather than the value “13”. In the Inventory database, these specific attributes are maintained as enumerated data. The actual value for Processor.Family is stored in a view called CIM.Family_en_us. These attributes in the Inventory database are enumerations and have integer values, which can take a range of meaning.

Since these are constants, the enumerations are localized. So the typical name of a localized enum view is _locale_country. ZENworks for Desktops 4 supports English (en_us), French (fr), German (de), Spanish (es), and Portugese-Brazilian (pt_br). ZENworks for Servers 3 supports English only (en_us).

The entire set of enumeration views in the Inventory database, along with the corresponding attributes to which they are linked, is given in Table 2. These views have only two attributes: Enum and EnumString. By linking the enumerated view (as shown in Figure 9), you can see the actual data for Processor.Family (see Figure 10).

http://www.novell.com/appnotes October 2003 61 Figure 9: Linking the enumerated view for Processor.Family.

Figure 10: Preview of Processor data with values for Processor.Family.

http://www.novell.com/appnotes October 2003 62 Table 2: Enumerations.

Attributes Enum Views

ZENworks.WinOperatingSystem ZENworks.NetWareOperatingSystem OSType CIM.OSType_en_us Role ZENworks.OSRole_en_us

CIM.Processor Family CIM.Family_en_us UpgradeMethod CIM.UpgradeMethod_en_us Role CIM.Role_en_us

CIM.PointingDevice PointingType CIM.PointingType_en_us

ZENworks.Bus BusType ZENworks.BusType_en_us

ZENworks.VideoAdapter VideoArchitecture CIM.VideoArchitecture_en_us VideoMemoryType CIM.VideoMemoryType_en_us

CIM.VideoBiosElement IsShadowed CIM.IsShadowed

CIM.IRQ Availability CIM.Availability_en_us TriggerType CIM.TriggerType_en_us Shareable CIM.Shareable

CIM.CacheMemory Level CIM.Level_en_us CacheType CIM.CacheType_en_us ReadPolicy CIM.ReadPolicy_en_us ReplacementPolicy CIM.ReplacementPolicy_en_us WritePolicy CIM.WritePolicy_en_us Associativity CIM.Associativity_en_us

CIM.DMA Availability CIM.Availability_en_us BurstMode CIM.BurstMode

ZENworks.ParallelPort DMASupport CIM.DMASupport

ZENworks.BIOS PrimaryBIOS CIM.PrimaryBIOS

CIM.Battery Chemistry CIM.Chemistry_en_us

ZENworks.InventoryScanner ScanMode ZENworks.ScanMode_en_us

http://www.novell.com/appnotes October 2003 63 Attributes Enum Views

ZENworks.SystemInfo ManagementTechnology ZENworks.ManagementTechnology_en_us

ZENworks.ZENDiskDrive Removable ZENworks.Removable

ZENworks.ZENNetworkAdapter AutoSense CIM.AutoSense

Note: In this listing of enumerations, you can see an attribute Role belonging to the view ZENworks.WinOperatingSystem/ZENworks.NetWareOperatingSystem. This attribute maintains the role of the machine—that is, whether it acts as a managed server or a managed workstation. When ZfD and ZfS store data in the same database, this attribute can then be used to distinguish between workstations and servers and generate separate reports.

Linking CIM Classes The database schema shown in the Administration Guide for ZfD and ZfS shows the cardinality of the association. Continuing with the Processor example, if there is a “1” near GroupComponent and a “*” near PartComponent, this means that there can be more than one processor for a machine and it is a 1-to-n association.

For a one-to-one relationship, an equal join (the default) can be used. For all 1-to-n relationships, it is preferable to use a Left Outer Join in the Crystal Reports DB relationships.

Consider the 1-to-n association between CIM.UnitaryComputerSystem, CIM.System- Device, and CIM.PointingDevice. When scanned, the machine may have a single mouse attached, or there is the chance that no mouse is scanned, or the machine may have more than one mouse attached. In this case, using an equal join will yield the following result:

• In the case of a single mouse, the correct result is shown.

• In the case of no mouse scanned, the machine name is suppressed.

• In the case of more than one mouse, the correct result (both the pointing devices) is shown.

For single-item scans, this is a desirable set of results. However, when you want data about more than one item to be shown in the same report (for example, to show both keyboard details and pointing device details in the same report), the suppression will result in the data of that machine being suppressed. So in spite of the fact that there might be a keyboard attached to the entry, the machine will not be displayed. In this case, a Left Outer Join between CIM.UnitaryComputerSystem and CIM.SystemDevice is the answer.

http://www.novell.com/appnotes October 2003 64 Issues in Desiging Inventory Reports Using Crystal Reports There are several issues you might face while developing Inventory reports for ZENworks using Crystal Reports. • Integer fields over 15 digits in length are represented as float. All primary keys in Inventory are 19-digit integers. This poses a problem when you want to use these attributes to compute values, or use them in linking sub-reports. • String fields over 255 characters in length are treated as memo fields in Crystal Reports. In ZfD and ZfS, all string fields are within this limit, but in ZENworks for Desktops 3.2, certain important attributes like CIM.Product.Name and CIM.Product. Vendor are strings of 256 characters in length. These strings can be used only in display and cannot be used in a formula or to group. To use these strings, you will have to create a view which exposes the first 254 characters and copy this view on all databases on which the report will be run. • Processing of sub-reports on an Inventory database with more than 1000 workstations has been quite slow. It is preferable to build the links on the main table itself, rather than using sub-reports embedded in the main report.

These issues are addressed at the Crystal Care Technical Support Site. You can do a knowledge base search at http://support.crystaldecisions.com/library/kbase.asp for more information.

Conclusion Now that you have the basics of the Inventory database and how to create reports using the Crystal Reports Designer, you can include combinations of attributes to create reports relevant to your requirements. You can also use the above information to create views in the Inventory database and then build the reports over these views.

For Additional Information Detailed information on the ZENworks database schema and additional administrative tasks can be found in the Administrator Guide of the relevant version: • ZfD 4 - http://www.novell.com/documentation/lg/zdpr/ • ZfS 3 - http://www.novell.com/documentation/lg/zfsi/ • ZENworks 6 - http://www.novell.com/documentation/lg/zenworks6/

Information regarding Crystal Reports Designer can be obtained from http:// www.crystaldecisions.com.

Copyright © 2003 by Novell, Inc. All rights reserved.

No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying and recording, for any purpose without the express written permission of Novell.

All product names mentioned are trademarks of their respective companies or distributors.

http://www.novell.com/appnotes October 2003 65 Developer Note

Integrating Applications with the IP Address Management Framework

CH Ganapathi Senior Software Engineer Novell Inc. [email protected]

Thanks to Anoop Kumar P, Manjunath Balasubramaniam, and B Thavamani Rajan of Novell for their help with this AppNote.

This AppNote discusses two different interfacing mechanisms for integrating an application with the IP Address Management Framework in NetWare 6.5. It helps you decide which interface an application should use to integrate with the framework. It also explains the features provided by the framework that the application can make use of.

Contents:

• Introduction • Interfacing Mechanisms • Implicit Interfacing • Explicit Interfacing • Conclusion

Top ic s iP Address Management Framework, network applications, IP addresses, TCP/IP, network management Products NetWare 6.5 Audience network administrators, consultants, integrators, developers Level intermediate Prerequisite Skills familiarity with TCP/IP, NetWare 6.5 Too ls none Sample Code no

http://www.novell.com/appnotes October 2003 66 Introduction The IP Address Management Framework is a centralized framework that stores and displays the IP address/port configuration of applications integrated with this framework. The framework helps in managing the IP address-application association when changing the server’s IP address. It also helps in resolving port conflicts.

The prominent features of the framework with regards to integrating application are:

• A Web-based user interface (NetWare Remote Manager snap-in) to access the framework

• A centralized interface to edit applications’ IP/port configurations

• Classification of application configurations as Valid, Invalid, or Conflict

• Capability to assign an IP address to an application with the Default IP address category

• Enforcing of policies on all the configurations of an application or locally to a particular configuration

• Accommodating changes to application’s IP/port configuration done outside the framework

This AppNote explains the two mechanisms that are available to integrate applications with the IP Address Management Framework: implicit and explicit interfacing. It provides a description of the appconf.xml file that is used for implicit interfacing, along with a summary of the policies supported by the framework. It also lists the available for explicit interfacing of applications.

For background information on the framework, see “IP Address Management Framework: Managing Application IP Address/Port Configurations in NetWare 6.5” in the September 2003 issue of Novell AppNotes, available at http://developer.novell.com/research/ appnotes/2003/septembe/02/a030902.html.

Interfacing Mechanisms There are two mechanisms available for applications to integrate with the IP Address Management Framework: implicit and explicit interfacing. Your choice of interface depends on how the application gets its IP/port configuration information. Applications may have their own configuration files/databases, or they may use system-provided APIs to get this information. The former type of applications can use implicit interfacing, while the latter can use explicit interfacing.

Figure 1 shows an architectural overview of these two interfacing mechanisms.

http://www.novell.com/appnotes October 2003 67 System Administrator Domain

NRM Support

Implicit Interfacing Developer Domain Local Config Application

Local Config Frame Application Application Local Config Work Interface XML

Explicit Interfacing Developer Domain API Interface

Application Application Application Application

Figure 1: An overall depiction of the implicit and explicit interfacing mechanisms.

Implicit Interfacing Some cross-platform applications, legacy applications, and third-party applications refer to their own configuration files/databases for configuration information. This type of application will interface with the IP Address Management Framework using an XML interface. In order to use the framework, the application should provide a tool that follows the following sequence of steps:

• Create a directory with a unique name (say XYZ) in SYS:\SYSTEM\IPCONF.

• Provide a PULLCFG.NCF file and a PUSHCFG.NCF file in the XYZ directory.

• When executed, PULLCFG.NCF should create an appconf.xml file containing the configuration information stored in the application’s configuration files or database.

• When executed, PUSHCFG.NCF should update the application’s configuration files or database with the contents of the appconf.xml file.

The appconf.xml file is the implicit interface between the application and the framework. When the administrator modifies an application’s configuration entries using the framework, the respective appconf.xml file is updated with the changed information and triggers the PUSHCFG.NCF file for the corresponding application.

http://www.novell.com/appnotes October 2003 68 Whenever the IP Address Management page is visited or refreshed through the NetWare Remote Manager utility, the framework executes all PULLCFG.NCF files (which are stored in multiple subdirectories of the IPCONF directory) to fetch possible changes to applications’ IP/port configurations that may have been made outside of the framework.

Here is a sample appconf.xml file:

Xyz example for appconf.xml ADDRESS_NOT_EDITABLE User Instance PORT_NOT_EDITABLE 10.1.1.12 IPv4 2 10.1.1.1 TCP 5983 Admin Instance CONFLICT_RESOLUTION_EXEMPT IPv4 2 10.1.1.1 UDP 5983 SYS:\SYSTEM\IPCONF\appconf.xml 0 Table 1 contains a brief description of the tags used in the appconf.xml file.

Table 1: Tags in appconf.xml.

Tag Name Tag Description Acceptable Values/Limits

Name Application’s name - provide a unique Should be less than 20 characters name for each application

Description Brief description of the application Should be less than 64 characters

GlobalPolicy Policies applicable to all configurations Multiple policies should be separated of the application by commas

http://www.novell.com/appnotes October 2003 69 Tag Name Tag Description Acceptable Values/Limits

Subcomponent- Brief description of the configuration Should be less than 64 characters Description used to distinguish between multiple identical configurations (same IP address, port, and protocol)

LocalPolicy Policies for this configuration Multiple policies should be separated by commas

ContextInformation Any extra information related to this Should be less than 127 characters configuration (the framework retains this while updating appconf.xml, so the application can use this field to keep track of any extra information related to this configuration)

AddressType Type of the IP address Can be IPv4 or DNS

AddressCategory Category of the address used Can be 0, 1, 2, or 3 - 0 = Default IP address 1 = Private IP address (reserved for future use) 2 = Primary IP address 3 = Secondary IP address

IPaddress IP address or DNS name - value can Should be less than 80 characters - be empty if the Address Category is Can be an IPv4 address or a DNS name; default (0) IP address should be in dotted notation

Protocol Protocol used by this configuration Should be TCP or UDP

Portnum Port number for this configuration Port number supported by the TCP/IP stack - value can be empty if the CONFLICT_RESOLUTION_EXEMPT policy is set for this configuration

Handler Absolute path of appconf.xml file Should be less than 128 characters

Guidelines for Creating the appconf.xml File Here are some guidelines to follow when you create an appconf.xml file for an application.

• All tags are mandatory except , , , and .

• All tags should appear in the same order as given in Table 1.

• If there are multiple configurations, each configuration should have a corresponding record.

http://www.novell.com/appnotes October 2003 70 Policies Supported by the Framework The following policies are supported by the IP Address Management Framework:

• ADDRESS_NOT_EDITABLE - The IP address field is not editable via the framework’s NetWare Remote Manager snap-in.

• PORT_NOT_EDITABLE - The Port field is not editable via the framework’s NetWare Remote Manager snap-in.

• CONFLICT_RESOLUTION_EXEMPT - The configuration will not participate in the framework’s conflict resolution process.

These policies are helpful in the following instances:

• Applications that listen on standard ports would not be interested in listening on a port other than the standard port. For such applications, you can opt for the PORT_NOT_EDITABLE policy.

• For an application that is not actively listening on a particular port, you can set the CONFLICT_RESOLUTION_EXEMPT policy so that the application’s configuration is ignored by the framework when scanning for port conflicts.

Figure 2 shows an example of the information displayed in the NetWare Remote Manager utility when the ADDRESS_NOT_EDITABLE policy and the optional tag are used.

Figure 2: Illustration of ADDRESS_NOT_EDITABLE policy and optional .

Figure 3 shows an example of the information displayed in the NetWare Remote Manager utility when the PORT_NOT_EDITABLE policy is used.

http://www.novell.com/appnotes October 2003 71 Figure 3: Illustration of PORT_NOT_EDITABLE policy.

Figure 4 shows an example of the information displayed in the NetWare Remote Manager utility when the CONFLICT_RESOLUTION_EXEMPT policy and an empty tag are used.

Figure 4: Illustration of CONFLICT_RESOLUTION_EXEMPT policy and empty tag.

http://www.novell.com/appnotes October 2003 72 Default IP Address and the Framework In NetWare 6.5, you can configure one of the primary IP addresses as the default IP address for the server. This can be done through the INETCFG utility or the “Configure TCPIP” NetWare Remote Manager snap-in. If no default is configured, the TCP/IP stack assigns the first bound IP address of the server as the default IP address.

If an application has opted for the “default” (0) setting for the AddressCategory tag, the framework overwrites the application’s IP address field with the default IP address of the server.

If the server’s default IP address changes, the framework automatically updates the IP address of all configurations having the default AddressCategory setting with the changed default IP address. For each application that is using the implicit interfacing mechanism, the framework updates the appconf.xml file and triggers the PUSHCFG.NCF file. For applications integrated using the explicit interfacing mechanism, the framework generates the OS event called EVENT_IPSERVICES_CONFIG_CHANGE.

NetWare 6.5 Applications Integrated Using Implicit Interfacing The following applications that come with NetWare 6.5 are already integrated with the IP Address Management Framework using the implicit interfacing mechanism.

• Admin Tomcat (Tomcat Admin Instance)

• Apache 2.0 Web Server

• ApacheAdmin (Apache Administration Web Server)

• iManager 2.0 Framework

• MySQL Database Server

• Native File Access for UNIX (NFAU)

• NetWare FTP Server

• NetWare Web Search Server 3.0.0

• Novell exteNd Application Server

• Novell Small HTTP Interface (HTTPSTK)

•SSH Server

• Tomcat 4 (Tomcat User Instance)

http://www.novell.com/appnotes October 2003 73 Explicit Interfacing The explicit interfacing mechanism is a programmatic approach. The framework exports C APIs, and also generates the OS event EVENT_IPSERVICES_CONFIG_CHANGE if there is a change in the server’s IP address or an application’s configuration. The application programmatically imports and uses the framework’s APIs to interface with it.

The steps in this approach are:

• The application successfully registers with the framework

• The application listens for the framework-generated OS event EVENT_IPSERVICES_CONFIG_CHANGE.

• Upon receipt of this event notification, the application uses the framework’s API to determine whether the administrator has changed its configuration, or if the IP address of one of its configurations is no longer available.

• Depending on the information obtained from the framework, the application may continue to listen on the new configuration, or it may shut down gracefully.

• Optionally, the application can change its IP/port configuration using the framework’s API without the administrator’s intervention.

• When the application unloads, it de-registers with the framework.

Applications using the explicit interfacing mechanism should get the ipconfig.h header file from the Novell NDK, available at http://developer.novell.com/ndk.

APIs To Be Used Here are the framework APIs that the application should use to carry out the steps outlined above.

IpMgmtRegisterApp(ServiceConfigEntry *) Use this API to register applications with the framework. The following fields of the ServiceConfigEntry structure should be filled in by the application when registering: • versionInfo - This is the version of ipconfig.h that the application is using. This should be the same as IPMGMT_VERSION in the ipconfig.h header. • serviceName - This is the unique name of the application (should be less than 20 characters). • serviceDescription - This is a brief description of the application (should be less than 64 characters). • numIpAddrInfo - This specifies the number of configurations (IP address, port, protocol) that the application is using.

http://www.novell.com/appnotes October 2003 74 • ipCfgInfo - This is a pointer to an array of IpAddressInfo structure. The array size should be numIpAddrInfo. • globalPolicy - Bit-wise ORing of the policies that are applicable to all configurations of the application. If no common policy is applied to all the configurations, the value should be zero. Policies supported are SKIPCR, IP_NOEDIT, and PORT_NOEDIT. For explanations of these policies, see CONFLICT_RESOLUTION_EXEMPT, ADDRESS_NOT_EDITABLE, and PORT_NOT_EDITABLE respectively under “Implicit Interfacing.” • res_configEntry - This field should be NULL (it is reserved for future use). • cfgStatus - The framework fills this field once you register the application.

While registering, the application should also fill in the following fields of the IpAddressInfo structure: • ipAddrType - This is one of the enum values of IpAddressType. Support for DNS is restricted to the names present in the local server’s etc/hosts file. • ipAddrCategory - The supported categories are:

• IPDEFAULT - Default IP address of the server • IPPRIMARY - Primary IP address of the server

• IPSECONDARY - Secondary IP address of the server

• IPPRIVATE - Reserved for future use • protocol - This is one of the enum values of TransportType. • ipAddress.dnsname - This is the DNS name or IPv4 address in dotted notation. If the ipAddrCategory is IPDEFAULT, this field can be left empty; the framework will overwrite this field with server’s default IP address. • portNum - This is a valid port number. It can be zero if the SKIPCR policy is set for this configuration. • cfgStatus - This should be zero. • localPolicy - This is a bit-wise ORing of policies for this configuration. If no policy is applied for this configuration, the value should be zero. • addressPortDescription - This is a brief description of this configuration; it can be empty also. If an application has multiple identical configurations (same IP address, port, and protocol), this description is required to distinguish between them. • ContextInformation - This field can be left empty, as the framework ignores it. An application can make use of this field to keep track of its previous configuration or any other information specific to this configuration. • res_ipEntry - This field is reserved for future use.

http://www.novell.com/appnotes October 2003 75 The value returned by IpMgmtRegisterApp() can be one of the following:

• REGISTER_SUCCESS - The application has registered successfully.

• REGISTERED_ALREADY - An application with the serviceName has already registered with the framework.

• REGISTER_FAILURE - The application failed to register with the framework.

If the registration is successful, the cfgStatus field of the ServiceConfigEntry is set to one of the following values:

• noError - The application’s configurations are valid and none of them conflicts with another application’s configuration.

• portConflict - One of the configurations conflicts with another application’s configuration.

If the registration fails, cfgStatus will have one of the following values:

• invalidVersion - The version specified is not supported

• invalidAppName - serviceName contains no characters, has more character than what is allowed, or contains only blank spaces.

• invalidIpInfo - The type or category of the IP address in one of the configurations is invalid, or the IP address itself is invalid.

• invalidPortInfo - The port value of one of the configurations is invalid.

• otherErrors - serviceDescription contains more characters than what is allowed, or a wrong protocol is specified in one of the configurations.

IpMgmtGetCfgInfo(ServiceConfigEntry *) Use this API to get the configuration information. To use this API, the application must have registered successfully with the framework; otherwise, the cfgStatus field will be set to invalidAppName. On event notification, the application should use this API to get its configuration information from the framework. This is done to see if the administrator has changed its configuration or if the IP address of one of its configurations is not available with the system anymore. In the later case, cfgStatus will be set to invalidIpInfo.

The application must fill in the following fields of ServiceConfigEntry: • versionInfo - This should be same as the one used for registration. • serviceName - This is the name for the application that was registered with the framework. • numIpAddrInfo - This specifies the number of configurations the application has registered with the framework.

http://www.novell.com/appnotes October 2003 76 • ipCfgInfo - This is a pointer to an array of IpAddressInfo structure. The array size should be numIpAddrInfo.

IpMgmtChangeIPAddress(char *AppName, u_short Protocol, char * OldIp, u_short OldPort, char *NewIp, u_short NewPort) Use this API to dynamically change a registered configuration. An application can use this API to change the configurations that it has registered with the framework without the administrator’s intervention.

A newer version of this API is available as IpMgmtChangeIPAddress_V1dot3 (char *AppName, u_short Protocol, char * OldIp, u_short OldPort, char *NewIp, u_short NewPort, u_int policy, char *description).

The parameters are:

• AppName - This is the name of the application.

• Protocol - This is the protocol used for the configuration.

• OldIp - This is the old IP address of the configuration to be changed (in dotted notation).

• OldPort - This is the old port number of the configuration to be changed.

• NewIp - This is the new IP address for the configuration.

• NewPort - This is the new port for the configuration

• policy - This indicates any local policy registered for this configuration.

• description - This is the addressPortDescription, if any, of this configuration.

Note: Only IP address and Port numbers can be changed using these APIs. If an application changes only one of these (say Port), the old and new values of the other should be same (OldIp and NewIp). An application can use the first API if it there is no addressPortDescription for the OldIp-OldPort configuration.

IpMgmtDeregister(char * AppName) Use this API to de-register an application from the framework. The application needs to supply only the name (serviceName) that it registered with the framework.

The framework exports two more APIs which applications can make use of.

IpMgmtGetValidIPAddress(char *IPArray[], int IPCat[]) Use this API to get a list of the configured IP addresses on the server that the application can use. The arrays IPArray and IPCat should be of identical size (preferably 256). The return value of this API tells how many addresses are configured on the server. IPCat[] will have the address category of the corresponding IP address in IPArray[].

http://www.novell.com/appnotes October 2003 77 IpMgmtGetDefaultIp(char *IpAddr) Use this API for an application to get the default IP address of the server. The default IP address will be returned in the parameter IpAddr as an array of at least 20 characters.

NetWare 6.5 Applications Integrated Using Explicit Interfacing The following applications included in NetWare 6.5 are already integrated with the IP Address Management Framework using the explicit interfacing mechanism.

• DNS Server (eDirectory-integrated DNS Server)

• NDPS Broker (host for brokered services SRS, ENS, and RMS)

• Novell Licensing Service (NLS) usage metering

• RSync NRM Management Utility (RSyncNRM)

• SMS Storage Data Register (SMDR)

The framework-integrated applications listed in this AppNote are available starting with the October 2003 release of the NDK. The header files are available in the Server Protocol Libraries for C.

Conclusion When a server’s IP address changes, this change must be reflected in numerous configuration files and in several other places to ensure that applications continue to work. The IP Address Management Framework in NetWare 6.5 greatly simplifies this task for network administrators. With the framework, the administrator can make IP address changes from one centralized place. The administrator doesn’t have to know where the application-specific configuration files reside. Moreover, the administrator no longer has to worry about incomplete IP address changes. For applications integrated with the framework, the administrator can better manage IP address/port configurations and easily resolve port conflicts.

Copyright © 2003 by Novell, Inc. All rights reserved.

No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying and recording, for any purpose without the express written permission of Novell.

All product names mentioned are trademarks of their respective companies or distributors.

http://www.novell.com/appnotes October 2003 78 Developer Note

How to Deploy Novell exteNd Director 4.1 Enterprise on Tomcat 4

Ulrich Romahn Senior Technical Manager Novell Inc. [email protected]

This Developer Note explains how to deploy Novell exteNd Director 4.1 Enterprise on the Tomcat 4 application server.

Contents: • Introduction • Installing Tomcat 4 • Configuring Tomcat 4 • Creating and Deploying a Director Project • Conclusion

Top ic s exteNd Director, Tomcat, Web servers, Web services Products Novell exteNd Director 4.1 Enterprise, Tomcat 4.x Audience network consultants, integrators, developers Level intermediate Prerequisite Skills familiarity with basic Web services environment Too ls none Sample Code no

http://www.novell.com/appnotes October 2003 79 Introduction Starting with version 4.1, Novell exteNd Director Enterprise can be packaged into a J2EE 1.3 WAR (Web Archive) file, instead of just an EAR (Enterprise Archive) file. This enables Director to be deployed on application servers that do not fully support all of the specified J2EE 1.3 services, such as Enterprise Java Beans (EJB), J2EE Connector Architecture (JCA), and Java Message Service (JMS).

Two popular versions of such application servers are Tomcat from the Jakarta project of the Apache Software Foundation (http://jakarta.apache.org/tomcat) and Jetty from Mortbay (http://jetty.mortbay.org/jetty). Both of these application servers support the Servlet 2.3 and Java Server Pages (JSP) 1.2 specifications. In addition, both servers can be augmented with a basic Java Naming and Directory Interface (JNDI) provider and resource management for data providers.

Tomcat in particular has become a very popular platform for lightweight Web applications, not only because it is open source and free, but even more because it has become the de facto reference implementation for the Servlet and JSP specifications.

This AppNote describes in detail the setup and deployment of a Director 4.1 Enterprise project on a Tomcat 4.1.23 application server. It is anticipated that the procedures described herein will also be valid for further versions of Tomcat 4.x, but not for Tomcat 5.x.

This AppNote explains how to acquire and install Tomcat 4.1.x, generate a Director project with Novell exteNd Workbench 4.1.1 and configure it for deployment, and configure Tomcat for a Director deployment.

Installing Tomcat 4 This section provides brief instructions on how to install and set up Tomcat 4 to work with Director 4.1 Enterprise. More details about installing Tomcat can be found at http://jakarta.apache.org/tomcat/tomcat-4.1-doc/index.html.

Prerequisites The Tomcat installation procedure outlined in this AppNote is based on the following configuration:

• Hardware: Dell C640 laptop, Pentium 4 2 GHz processor, 1 GB RAM, 40 GB hard drive

• Operating System: XP Professional SP1

It is expected that the installation should also work on different hardware and operating system environments.

http://www.novell.com/appnotes October 2003 80 Before attempting to install Tomcat, it is recommended to have a Relational Database Management System (RDBMS) installed on your computer, along with a current JDK (preferably J2SDK1.4.1). Since Director 4.1 does not yet support MySQL, the only options on a Windows platform would be Adaptive Server Anywhere (ASA), MS SQL Server, Oracle 8 or 9i, or IBM DB2. For this AppNote, Tomcat was running on J2SDK1.4.1_02 and accessing SQL Server 2000.

One final prerequisite is the assumption that Novell exteNd Workbench 4.1.1 and Director 4.1 Enterprise have been successfully installed on this machine.

Downloading and Installing Tomcat 4 You can download Tomcat 4 from http://jakarta.apache.org/site/binindex.cgi under the section “Main distribution site.” There are multiple versions of Tomcat available for download. It is recommended that you get the latest revision of Tomcat 4.1.x. After clicking the link, you will see the folder structure of the download site (see Figure 1).

Figure 1: The folder structure of the Jakarta Tomcat download site.

Click on the “bin/” folder. You will see a list of releases as shown in Figure 2.

http://www.novell.com/appnotes October 2003 81 Figure 2: List of Tomcat releases available for download.

As you can see, the site offers multiple distributions. You might want to download one of the full distributions (not containing “LE” for “Light Edition”), even if you have already a JDK 1.4 installed. I was not able to make any LE version of Tomcat work, but others may not experience the same problems as I did.

For Windows, download either the .zip file or the installation (.exe) file. For UNIX/Linux distributions, download the .tar.gz version.

After downloading the appropriate file, extract the package to a location of your choice or run the Windows installer.

You will end up with a folder structure similar to the one shown in Figure 3 (in my case, I unpacked it into C:\Java).

Figure 3: Tomcat files extracted into the folder of your choice.

http://www.novell.com/appnotes October 2003 82 Configuring Tomcat 4 Configuring Tomcat properly is probably the most complicated and error-prone part of this entire process. The configuration instructions are split into two parts: basic configuration and Director-specific configuration.

For the purposes of this AppNote, I will use the term TOMCAT_HOME for the path where Tomcat has been installed (in this example, TOMCAT_HOME=C:\Java\jakarta- tomcat-4.1.24).

Basic Configuration By default, Tomcat is configured to work on port 8080 for HTTP and 8443 for HTTPS. It also requires port 8009 for an AJP 1.3 port (servlet redirect from Apache HTTP server or MS IIS). If your computer has no other service already running on these ports, you can leave everything configured as is.

If you do have other services using one or more of these ports, it is better to change them. Before you start Tomcat the first time, start a browser and check to see if there is a response on one of these ports (for example, http://localhost:8080).

To adjust one of these settings, it is necessary to edit the server.xml file located in the TOMCAT_HOME\conf directory. Below is an excerpt of the XML code with the port specifications:

http://www.novell.com/appnotes October 2003 83 Change the ports in the file to a value that is not likely being used. On Windows, one way to see which ports are being used is to open a command prompt window and enter the command “netstat -a”. You will get a list of all active ports on this system. (Linux has a similar command for this.)

If you have to change the ports, it is recommended to change all of them consistently. In my example, I changed them to HTTP=9080, HTTPS=9443, and AJP13=9009.

This should be enough for the basic configuration of Tomcat 4.

Director-Specific Configuration Before this configuration should be done, a new Director project should be created and actually deployed to Tomcat. These steps will be described in the next section. To keep the Tomcat configuration in one section, we will describe these steps here.

The Director-specific configuration encompasses three steps:

1. Copy the RDBMS JDBC drivers to the Tomcat folders. 2. Configure the datasource in Tomcat’s server.xml file.

3. Add the application context with the proper resource references.

Here are the details for completing these steps.

Copying the RDBMS JDBC Drivers into the Tomcat Folders. The first task is to locate the libraries for your RDBMS’s JDBC drivers. In this example (MS SQL Server 2000), they can be downloaded from Microsoft’s Web site at http://www.microsoft.com. After installation, copy the mssqlserver.jar, msbase.jar, and msutil.jar files to the TOMCAT_HOME\common\lib folder (this is the place where all libraries go that need to be accessed from all applications and the Tomcat server itself).

Configuring the Datasource in Tomcat’s server.xml File. Open the serverl.xml file in your favorite text editor or in exteNd WorkBench. In the section, add your Director datasource as shown here:

factory org.apache.catalina.users.MemoryUserDatabaseFactory

http://www.novell.com/appnotes October 2003 84 pathname conf/tomcat-users.xml ***INSERT CODE HERE***

Before the end tag, insert the following code (assuming the use of MS SQL Server):

factory org.apache.commons.dbcp.BasicDataSourceFactory maxWait 5000 maxActive 4 password password url jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Director driverClassName com.microsoft.jdbc.sqlserver.SQLServerDriver maxIdle 2 username DirectorAdmin The parameters in bold italics need to be adjusted according to each individual environment. For example, the JDBC driver name and URL will be different for a different RDBMS.

Of course, it is also assumed that a new database (or a new schema for Oracle) has been created that will be used for Director.

http://www.novell.com/appnotes October 2003 85 Adding the Application Context with the Proper Resource References. In general, applications are deployed to Tomcat by copying a WAR file or a folder that complies with the structure of a WAR file into the folder TOMCAT_HOME/webapps. Upon startup of Tomcat, the deployer of Tomcat will start the application, provided there is a context in the server.xml file.

So, after deploying the Director project to Tomcat but before starting the application server, the following code needs to be inserted right after the root context:

*** INSERT CODE HERE *** The code to insert is:

The parameters in bold italics need to be adjusted accordingly for each individual environment.

After you have done all this, stop and restart Tomcat if it is already running.

Creating and Deploying Your Director Project This section assumes that you have a working installation of exteNd Workbench 4.1.1 and Director 4.1 Enterprise on your computer, as outlined in the “Prerequisites” section.

Generating a Director Project Follow these steps to generate a Director project.

1. Start exteNd WorkBench and select “Director Project” to create a new Director project (see Figure 4).

http://www.novell.com/appnotes October 2003 86 Figure 4: Creating a new Director project.

2. In the next screen, select the default template and let WorkBench generate the project. Fill in the project information as shown in Figure 5. Then click Next.

Figure 5: Director Project Setup screen.

3. You might want to select a “Custom” type. If so, continue clicking Next until you reach the “Directory Information” form. Select “PersistManager” from the drop- down menu.

Note: You can also select and configure the “LDAP” realm. However, for simplicity’s sake, this option has not been selected here.

http://www.novell.com/appnotes October 2003 87 4. Click Next until you see the Summary screen, and then click Finish. Let WorkBench generate the Director project for you. By accepting all the default settings, you are generating a Director project with all available subsystems. When the project build is complete, you should see the message shown in Figure 6.

Figure 6: Message displayed when the project build is successful.

5. Next you must create a server profile for Tomcat 4. Select Edit > Profiles, create a new profile, and name it “Tomcat 4” (or whatever name you feel comfortable with). Enter the profile information as shown in Figure 7. Of course, you will replace TOMCAT_HOME with whatever path you have used (for example, C:\Java\jakarta- tomcat-4.1.24).

http://www.novell.com/appnotes October 2003 88 Figure 7: Creating a new server profile.

Configuring Director to Deploy on Tomcat For this configuration, you need to adjust the default JNDI name of the datasource in the resource set. Here are the steps for doing this.

1. Open the config.xml file in the WEB-INF/lib/FrameworkService.jar/ FrameworkService-conf directory.

2. Change the “com.sssw.fw.datasource.jndi-name” entry to “Director” instead of the default value as shown in Figure 8.

http://www.novell.com/appnotes October 2003 89 Figure 8: Editing the config.xml file in Workbench.

3. Close the config.xml file and save the changes.

For the final step, you must enter a reference to the datasource resource in the deployment descriptor web.xml file. Here are the steps to do this.

1. Open web.xml in Workbench and scroll down to the end of the file (see Figure 9).

http://www.novell.com/appnotes October 2003 90 Figure 9: Editing the web.xml file in Workbench.

2. Right-click on the “ResourceReferences” entry and select “Add” from the pop-up menu. Right-click on the new entry called “UntitledResourceReference” and edit the properties as shown in Figure 10.

http://www.novell.com/appnotes October 2003 91 Figure 10: Editing the Resource Reference.

3. It seems that sometimes there is a conflict with the WebDAV servlet mapping while deploying to Tomcat. To avoid this, it is recommended that you change the default mapping. Look for the servlet mapping in your web.xml file (see Figure 11).

http://www.novell.com/appnotes October 2003 92 Figure 11: WebDAV servlet mapping.

4. Right-click to open the properties dialog, and change the default URL pattern to “/webdav/*”, as shown in Figure 12.

http://www.novell.com/appnotes October 2003 93 Figure 12: Servlet Mapping page in the Properties screen.

5. Close the properties window and save the web.xml file. 6. Select “Build and Archive (Ctrl+F7)” and “Deploy Archive (Ctrl+F5)” to generate and deploy your project. 7. For deployment, it is recommended to have Tomcat not running and enable rapid deployment on the Deployment Info page, as shown in Figure 13.

http://www.novell.com/appnotes October 2003 94 Figure 13: Enabling Rapid Deployment.

8. Finally, you should be able to start Tomcat and see the boot messages from Director. The output should look similar to what is shown in Figure 14.

http://www.novell.com/appnotes October 2003 95 Figure 14: Boot messages from Director when starting Tomcat.

Congratulations! You have successfully installed, configured, and deployed exteNd Director 4.1 Enterprise on Tomcat 4.

Here are the URLs to each subsystem (“TomcatExample” is the context name of this document):

• Main Page: http://localhost:9080/TomcatExample/main

• PMC: http://localhost:9080/TomcatExample/main/pages/PmcFolders.html

• PAC: http://localhost:9080/ TomcatExample /main/pages/PacPortalDetails.html

• myPortal: http://localhost:9080/ TomcatExample /main/myportal

• Personalize: http://localhost:9080/ TomcatExample /main/component/ PortalPersonalizer

• WebDAV: http://localhost:9080/ TomcatExample /webdav

http://www.novell.com/appnotes October 2003 96 Conclusion This Developer Note has shown how to deploy exteNd Director 4.1 Enterprise on the Tomcat 4 application server. For more information about exteNd Director and related products from Novell, visit http://www.novell.com/extend.

Copyright © 2003 by Novell, Inc. All rights reserved.

No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying and recording, for any purpose without the express written permission of Novell.

All product names mentioned are trademarks of their respective companies or distributors.

http://www.novell.com/appnotes October 2003 97 Developer Note

How to Build J2EE Applications Using Novell Technologies: Part 10

J. Jeffrey Hanson Chief Architect Zareus, Inc. [email protected]

This is the tenth in a series that outlines a platform and methodology for Java 2 Platform Enterprise Edition (J2EE) application development on NetWare using a service-oriented architecture. In this AppNote, we will investigate Novell technologies that allow us to create and host UDDI servers on the NetWare platform.

Contents: • Introduction • Overview of UDDI Registries • Novell Nsure UDDI Server • Novell Nsure UDDI Server Security • Installing Novell Nsure UDDI Server • Configuring Novell Nsure UDDI Server • Programming to UDDI Using Nsure Command Beans • Conclusion

Top ic s Java applications development, J2EE, UDDI, registries, Web services Products Java 2 Enterprise Edition Audience developers Level intermediate Prerequisite Skills familiarity with Java programming Too ls none Sample Code yes

http://www.novell.com/appnotes October 2003 98 Introduction This is the tenth in a series of AppNotes outlining a platform and methodology for Java 2 Platform Enterprise Edition (J2EE) application development on NetWare using a service- oriented architecture.

In the previous AppNote, we introduced technologies that enable us to publish and find Web services using technologies on the NetWare platform.

In this AppNote, we will investigate Novell technologies that allow us to create and host UDDI servers on the NetWare platform.

Overview of UDDI Registries UDDI (Universal Description, Discovery, and Integration) is a specification which defines how service providers can publish and discover information about their Web services using XML-based messages and data. A UDDI Registry implements the UDDI XML schema information model, shown below:

Business Entity tModel (names, description (names, contacts, URL to spec.) categories, etc.)

Business Service

(names, business key, service key, description, etc.)

Binding Template (access point, binding key, service key, description, etc.)

Figure 1: Schema information model.

The information stored in a UDDI registry consists of Business Entities, Business Services, Binding Information and Compliance Information.

http://www.novell.com/appnotes October 2003 99 A UDDI registry is often referred to in terms of a type of telephone directory where white pages are represented by business address, contacts, etc.; yellow pages are represented by categorizations and taxonomies and “green pages” are represented by technical information about each Web services.

Novell Nsure UDDI Server Novell Nsure UDDI Server is integrated with Novell eDirectory and complies with open standards such as HTTP, XML, and SOAP to provide centralized management of UDDI services. It also provides authentication, authorization, unified account management, replication, and synchronization.

Novell Nsure UDDI Server includes the following components:

• UDDI registry service

• UDDI User Interface

• UDDI Administration Interface

• UDDI Client Command Beans (http://developer.novell.com/ndk/leadedge.htm)

Novell Nsure UDDI Server is accessed and its registry is administered using a set of browser-based Web interfaces. These interfaces rely on eDirectory and are based on the iManager framework.

Novell Nsure UDDI Server runs on NetWare, Windows NT/2000, Linux, Solaris, and AIX servers.

Novell Nsure UDDI Server provides the following features:

• UDDI core data structures such as business entity, business service, binding template, and TModel.

• Public and non-public authenticated inquiry and publish operations.

• Integration with eDirectory to:

• Create and manage user accounts

• Provide access control

• Perform replication and synchronization

• Create customized indexes for attributes such as category bag, identifier bag, and TModel bag

• Perform partition and distribution operations of a directory • Web-based administration and management.

http://www.novell.com/appnotes October 2003 100 • Logging UDDI server messages to the Console or a text file.

• All configurations, registry properties, and access policies are managed through eDirectory.

• Novell Nsure UDDI Server works with other UDDI v2 compliant clients.

Novell Nsure UDDI Server Security Novell Nsure UDDI Server supports a simple password-based LDAP authentication. The identity and authentication services are provided by eDirectory services and support storing and managing enterprise identities. The administration and management tasks of creating the identities and assigning proper access rights can be done using the management console associated with eDirectory.

Novell Nsure UDDI Server relies on SSL/TLS for session security. Thus, authentication takes place over a secure protocol, ensuring that passwords never travel across the network in clear-text format.

Novell Nsure UDDI Server uses hierarchical access control lists (ACLs) to enable you to restrict access to UDDI data, therefore managing who can create, modify, and delete UDDI information in a registry. Using eDirectory, Novell Nsure UDDI Server supports user identity and group identity-based access controls. By default, access control is provided in eDirectory using the association of an ACL to each object. The ACL is the key component that controls access to eDirectory information and determines the operation that an entry can perform on another object and its attributes.

Since Novell Nsure UDDI Server is deployed as a Web application in a servlet container, it can, and does, rely on SSL/TLS to provide data confidentiality and integrity.

Novell Nsure UDDI Server supports non-repudiation to the that:

• Every business entity that a user publishes has an authorized name that ensures that only an authorized user can modify, delete that business entity.

• All eDirectory transactions that a user does are auditable. This enables transactions to be tracked for a particular eDirectory object. Although no auditing is done on direct UDDI operations, auditing the related eDirectory data can be employed to analyze UDDI operations since they are directly associated with eDirectory operations.

Auditing is provided through Novell Advanced Auditing Service (NAAS). NAAS supports monitoring and reporting capabilities through which an auditor or UDDI server administrator can analyze UDDI events.

Installing Novell Nsure UDDI Server To install Nsure UDDI Server on a NetWare server:

http://www.novell.com/appnotes October 2003 101 1. Disable the TLS Required for Bind option for an LDAP server. 2. Select Novell Nsure UDDI Server from the component selection page.

3. Click Next to continue installation.

4. Select UDDI Server and accept the license agreement.

5. Select Install UDDI Server to install all the required files for the UDDI server.

6. If the install has detected a directory where Tomcat is installed, then continue with Step 7. You will see the directory name against in the Server Install Folder Detected field or if the installation process is unable to detect the directory where Tomcat is installed click Choose to select the webapps folder in the Tomcat home directory.

7. Click Next.

8. Review the pre-installation page and click Next to start installation. 9. If the installation is successful, a Congratulations message is displayed.

10. Restart the Tomcat engine to start UDDI service.

11. Open a browser window and enter one of the following URLs: • For Tomcat Standalone, enter http://hostname:8080/novelluddi/servlet/rpcrouter

• For Tomcat-Apache, enter http://hostname/novelluddi/servlet/rpcrouter

• For Tomcat-Apache with SSL, enter https://hostname/novelluddi/servlet/rpcrouter • A message similar to the following is displayed in your browser window if the UDDI service is running: • Novell Nsure UDDI Server 1.0

• Thank you for using Novell Nsure UDDI Server. You can access the UDDI Server through: Novell iManager interface, Novell UDDI Command Beans, Any other standard UDDI client

Configuring Novell Nsure UDDI Server To configure Nsure UDDI Server on a NetWare server, launch the UDDI Web-based utility as follows:

1. Open Internet Explorer (version 5.5 SP2 or above) from any machine running Windows.

2. Type the following URL in the address bar of the Internet Explorer window:

http://www.novell.com/appnotes October 2003 102 • http://xxx.xxx.xxx.xxx:port/eMFrame/iManager.html where xxx.xxx.xxx.xxx is the IP address of the hosted eMFrame server or, if eMFrame server is hosted through NetWare 6.1, type the following URL in the address bar of the Internet Explorer window:

• http://xxx.xxx.xxx.xxx:port/nps/iManager.html

• For Tomcat Standalone: http://hostname:8080/eMFrame/iManager.html For Tomcat-Apache: http://hostname/eMFrame/iManager.html For Tomcat-Apache with SSL: https://hostname/eMFrame/iManager.html On NetWare 6.1 for Tomcat-Apache with SSL: https://hostname:2200/nps/ iManager.html On NetWare 6.1 for Tomcat-Apache without SSL: http://hostname/nps/ iManager.html, where hostname is the server name or the IP address of the server where the UDDI service is running.

3. To log in to the web-based utility, enter the user name, the eDirectory context, the user password, and the eDirectory tree 4. Click the Roles and Tasks icon in the taskbar. The Web-based utility roles appear in the left pane. • To manage UDDI server configuration and enabling SSL for the server, click UDDI Server Management. • To manage access to the UDDI registry; click UDDI Admin Access Management.

• To perform publish operations to the UDDI registry, click UDDI Publish.

• To perform inquiry operations to the UDDI registry, click UDDI Inquiry. • To manage access to specific entries published by the user in the UDDI registry, click UDDI User Access Management.

Programming to UDDI Using Nsure Command Beans The Novell Nsure UDDI Command Beans are based on the UDDI API specification and enable developers to access information from a UDDI registry. The beans provide a command interface for operations such as browse, add, delete, save, and modify data on a UDDI registry. The beans also support the authenticated-inquiry operation provided by Novell Nsure UDDI Server.

Each set of Novell Nsure UDDI Command Beans abstracts a particular network service, such as directory (LDAP), security, or Web infrastructure (WebDAV and UDDI).

The Novell Nsure UDDI Command Beans are modeled after the Command pattern to enable establishing UDDI connections and to perform inquiry/publishing operations.

The Novell Nsure UDDI Command Beans can be used to perform UDDI tasks, such as:

http://www.novell.com/appnotes October 2003 103 • Establishing a connection

• Listing businesses

• Retrieving details of a business

• Publishing information about a new business

• Updating information about a business

• Deleting information about a business

• Authenticating and un-authenticating a user

Establishing a Connection The following illustrates how to use the Novell Nsure UDDI Command Beans to connect to a UDDI registry using an inquiry URL. This type of connection is suitable for public read operations:

com.novell.ecb.uddi.UDDIConnection uc = null; try { //Instantiate the command bean uc = new UDDIConnection();

//set the input property uc.setInquiryURL("http://www.myserver.com:8080/uddi/inquiry"); } catch(UDDIException e) { System.out.println(e.getSoapFaultCode()); System.out.println(e.getSoapFaultString()); System.out.println(e.getUDDIErrorCode()); System.out.println(e.getUDDIErrorNumber()); System.out.println(e.getMessage()); }

Establishing an Authenticated Connection The following illustrates how to connect to a UDDI registry using an inquiry URL, a publisher URL, a user name, and a password:

UDDIConnection uc = null; try { //Instantiate the command bean uc = new UDDIConnection();

//Set the input property of the command bean uc.setInquiryURL("http://www.myserver.com:8080/uddi/inquiry"); uc.setPublishURL("http://www.myserver.com:8080/uddi/inquiry");

http://www.novell.com/appnotes October 2003 104 uc.setCredentials("jdoe", "foobar");

uc.execute();

//Get the output property of the command bean String authToken = uc.getAuthToken(); } catch(UDDIException e) { System.out.println(e.getSoapFaultCode()); System.out.println(e.getSoapFaultString()); System.out.println(e.getUDDIErrorCode()); System.out.println(e.getUDDIErrorNumber()); System.out.println(e.getMessage()); }

Listing Businesses The following illustrates how to obtain a list of businesses from a UDDI registry.

try { //Instantiate the command bean UDDIFindBusiness findBusiness = new UDDIFindBusiness();

//Set the input property of the command bean findBusiness.setConnection(uc);

//Call the execute method of the command bean findBusiness.execute();

//Get the output property of the command bean List businessInfos = findBusiness.getBusinessInfos(); } catch(UDDIException e) { System.out.println(e.getSoapFaultCode()); System.out.println(e.getSoapFaultString()); System.out.println(e.getUDDIErrorCode()); System.out.println(e.getUDDIErrorNumber()); System.out.println(e.getMessage()); }

Un-authenticating a Connection The following illustrates how to un-authenticate a previously authenticated connection:

try { uc.getDiscardAuthToken(); } catch(UDDIException e) { System.out.println(e.getSoapFaultCode());

http://www.novell.com/appnotes October 2003 105 System.out.println(e.getSoapFaultString()); System.out.println(e.getUDDIErrorCode()); System.out.println(e.getUDDIErrorNumber()); System.out.println(e.getMessage()); }

Conclusion This AppNote investigated Novell technologies that allow us to create and host UDDI servers on the NetWare platform.

In our next AppNote in this series, we will take a look at building an Enterprise Service Bus (ESB) on the NetWare platform.

For Additional Information For more information about the technologies discussed in this AppNote, refer to the following resources:

• For a discussion about UDDI and NetWare, visit news://developer-forums.novell.com/ novell.devsup.uddi.

• For more information about UDDI, visit http://www.uddi.org.

• For Novell-specific Java programming information, see http://developer.novell.com/ ndk.

• For information about Zareus and its products for building enterprise applications for J2EE, Web services, and X-Internet environments, visit http://www.zareus.com.

• For part in this series which introduces the technologies for the series and tells how to get started by enabling NetWare to respond to HTTP requests with static documents and dynamic scripts generated by Java Server Pages (JSPs) and servlets visit: http:// developer.novell.com/research/appnotes/2002/may/05/a020505.htm

• For part two in this serie which shows how to handle HTTP requests, dispatch the requests and respond with device-independent presentation code in this series visit: http://developer.novell.com/research/appnotes/2002/june/06/a020606.htm

• For part three in this series where we continue our exploration of the Web tier by constructing mechanisms that allow us to dynamically configure our controller servlet visit: http://developer.novell.com/research/appnotes/2002/july/03/a020703.htm

• For part four in this series where we further explore the business tier and introduce how our services interact with a platform kernel visit: http://developer.novell.com/ research/appnotes/2002/august/05/a020805.htm

http://www.novell.com/appnotes October 2003 106 • For part five in this series where we learn more about JMX (Java Management Extensions) and present some of the other services that JMX offers to empower our platform.visit: http://developer.novell.com/research/appnotes/2002/septembe/06/ a020906.htm

• For part six in this series where we will learn about how the platform interfaces with the data tier and how we can build our data-access components to be highly flexible and robust visit: http://developer.novell.com/research/appnotes/2002/november/05/ a021105.htm

• For part seven in this series which we learn about how our DAO framework can also be used to simplify and unify access to Web service provider sources visit: http:// developer.novell.com/research/appnotes/2002/december/06/a021206.htm

• For part eight in this series where we further explore AXIS and Web services and see how AXIS can be used to handle SOAP messages as an integral component of our platform visit: http://developer.novell.com/research/appnotes/2003/march/03/ a030303.htm

• For part nine in this series where we introduce technologies that enable us to publish and find Web services using technologies on the NetWare platform visit: http:// developer.novell.com/research/appnotes/2003/july/05/a030705.htm

Copyright © 2003 by Novell, Inc. All rights reserved.

No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying and recording, for any purpose without the express written permission of Novell.

All product names mentioned are trademarks of their respective companies or distributors.

http://www.novell.com/appnotes October 2003 107 Net Management

Network Novice

iFolder 2.0

Jeff Fischer What is iFolder? Research Engineer iFolder is a file storage and management solution that lets you Novell AppNotes access your files from anywhere and at any time. It no longer [email protected] matters where you are, whether you are inside the corporate network or outside the firewall. iFolder lets you open and use Last month we concluded a very detailed discussion about any local files that you’ve placed in your iFolder directory. iManager 1.5. Now we begin talking about basic network services that are an important part of a business. We will talk iFolder Features about Novell’s cross-platform services that run on NetWare, Windows, and Linux. This month we begin our discussion iFolder provides the following features: about network services with an article on iFolder storage. • File storage

Storage, an Important Service • Access from anywhere Storage space is one of the most vital services on a corporate • Synchronization of files network. Users must have secure and reliable storage space in • Security order to store their work. With all of the software available • Data encryption today, the total number of storage space necessary for large corporations to conduct business amounts to hundreds of • HTTP-based Gigabytes of disk space. • Conflict bin Users must be able to easily and quickly access storage space to • Cluster aware save their files. If you were to poll most corporations, I would bet that most users store the majority of their data on their local iFolder stores files and directories. You can organize your files hard drives. While this is not uncommon nor necessarily bad, it with folders just like you would organize them on your local file does introduce several problems that must be overcome for system. This makes it easy for mobile employees to access businesses. important data and take advantage of other iFolder features. First of all, businesses must provide a way for users to store With storage solutions like iFolder, we no longer have a need their important data on network drives that are reliable and for what the industry has coined the term as “sneaker-net.” You secure. The data must be accessible to those who need to access can eliminate the need to carry files back and forth on a floppy it, and inaccessible to everyone else. Second, the network drives disk, or even other media such as a CD. All you need is an should be backed up so that the data can be recovered in case of Internet connection to store data in your iFolder directory. a hardware or software failure on the users’ workstation. Most of us save our work on our local workstation. Now we can I’m sure many of us have experienced a time when suddenly do that because iFolder will help solve the problems associated our laptop or desktop computer did not start up and all the data with that. iFolder manages the versions of files for you. It will on the machine was lost. Although with today’s hardware, such always provide for you the latest version of the file and it hardware failures occur less frequently, the chance of it synchronizes the changes with the iFolder server. happening is still high enough that it must be considered. You can even open files and make changes while you are not Third, the data must be accessible from anywhere and at connected to the network. Then the next time you connect to the anytime. This comes increasingly more difficult for a network network, the changes are synchronized. Even if your computer staff to provide access to data from anywhere in the world at crashes with a hardware failure and you cannot power on your anytime and still maintain a high level of security. computer, you can still access your iFolder files that were most recently synchronized.

http://www.novell.com/appnotes October 2003 108 Net Management

iFolder manages the security for you. It ensures that users only iFolder integrates with eDirectory. eDirectory stores informa- have access to their own directories. Administrators can setup tion about the iFolder system, user authentication, and access encryption so that files are exchanged to the iFolder Server control. System and server information is stored in a Global encrypted. This allows for valuable protection against packet Setting LDAP Directory, which contains information for the sniffing and spoofers that are trying to capture sensitive data iFolder service objects, server objects, and LDAP server from the Internet. objects. User authentication and access control information is stored in a User LDAP Directory. The iFolder service is integrated with a web server so that all traffic is based on the HTTP protocol. This eliminates the need A web browser interface can be used to access the contents of for VPN services and other special firewall configurations, an iFolder service as well. The iFolder Server provides a web since HTTP uses port 80. interface if you are accessing iFolder from a computer where the iFolder client is not installed. You can access iFolder from iFolder has the capability to deal with document “collisions” via any device that has a browser, including PDAs. Through the a built-in Conflict Bin. For example, suppose you work on a web browser interface, users can login to an iFolder server and document while you are disconnected from the network but perform all file operations just as if they were accessing iFolder don’t synchronize it to the iFolder server because you don’t on their local machine. These operations include downloads, have an Internet connection. Later, you connect to the network uploads, deletions, renames, and the creation of new folders. from a different computer, work on the same document, and Users can download the files, make any changes and then that version is automatically updated to the iFolder server. upload the file to the iFolder Server. When you return to the original client computer and connect to the network, it will try to send its own update version of the document to the iFolder server, but it won’t be able to because iFolder Server Installation that document version will have an earlier time stamp. Instead, In order to install iFolder, you should be sure you meet the iFolder sends the document to the Conflict Bin, where you can following requirements: retrieve it and restore it at any time. • eDirectory 8.6 or higher iFolder is cluster-aware and supports the use of SANs or • 10 MB of free space on volume SYS Storage Area Networks. You can install iFolder on an NCS cluster to provide extra fault tolerance and load balancing for a • ROOTCERT.der file for secure transmissions more robust storage solution for your network. • Server IP address or DNS name • NetWare 5.1 with SP4 or NetWare 6 with SP1 or higher Components of iFolder • Adequate disk space for the iFolder user data iFolder consists of four main components, which are: While it seems logical to have an IP address for the iFolder • iFolder Server server, you must make sure the IP address does not have other • iFolder Client web services or LDAP services bound to that IP address. Because iFolder uses LDAP and Apache, which run on ports • eDirectory 389, 443, 80, 636, the IP address must be free of those services •Browser as to not create a port conflict. The iFolder Server is integrated into the Apache web server on It is common and typical to use a secondary IP address for your NetWare and IIS web server for Windows servers. An iFolder iFolder server. To add a secondary IP address to your NetWare Linux and Solaris port integrated with Apache is also available. server, at the server console prompt, type

The iFolder Server provides LDAP authentication, Web page add secondary ipaddress 123.45.67.89 delivery, and secure HTTP communication. A single iFolder server can service thousands of users and supports any standard You will most likely want to put this command in the type of disk storage solution. It also has a web based manage- autoexec.ncf file so that the IP address for iFolder will be added ment console. on server reboot. The iFolder client facilitates the storage of user data in a local Here are the steps to install iFolder Server on a NetWare server. iFolder directory and watches for any changes to user files. The iFolder client currently supports Windows-based clients, with a 1. From a Windows client, map a drive to volume SYS of the Linux based client in development. NetWare server that will be the iFolder Server.

http://www.novell.com/appnotes October 2003 109 Net Management

2. From the Windows client, run ApacheiFolderServer.exe. 8. Fill in the network domain, IP address, admin’s email, and 3. Click Next. port number fields as shown in Figure 3. 4. Click Yes to accept the license agreement. 5. Click Browse to select the drive mapped earlier to volume SYS as shown in Figure 1.

Figure 3: Filling in the other important information.

9. Click Next. Figure 1: Selecting Volume SYS:. 10. Fill in the IP address of the iFolder Server, the LDAP port, 6. Select to leave the existing installation of Apache and security certificate if using secure transmissions, and the install iFolder as shown in Figure 2. context where the users reside as shown in Figure 4.

Figure 2: Installing iFolder. Figure 4: Filling in the IP address and LDAP port information. 7. Allow the copy to occur. 11. Click Next.

http://www.novell.com/appnotes October 2003 110 Net Management

12. Enter the location where the users’ data will reside. 13. Enter the administrators for iFolder, separated by semi- colons. 14. Click Next. 15. Click Finish. 16. Restart your iFolder Server. iFolder is now installed. Once iFolder is installed, you can access the Administrator web-based management Console by opening a browser and typing in the address bar as shown in Figure 6: The iFolder client screen. Figure 5: Follow these steps to install the iFolder client. https://ip_address/iFolderServer/Admin 1. Click on the link to download the iFolder client and save it When you enter this URL, you will see the following screen: to your hard disk. 2. Run the iFolderClient.exe program. 3. Click Next. 4. Select the language to install and click Next. 5. Close the browser window with the license agreement. 6. Select Yes to accept the license. 7. Click Next to accept the default installation path. 8. Click Finish. 9. Select Yes to restart your computer and click Finish. 10. After the reboot, an iFolder login screen should appear. Login with your username and password. 11. The screen will prompt you for a pass phrase, which is used to encrypt the files as they are sent to the server. 12. Specify the path where you want to place your iFolder Figure 5: Accessing the Administrator web-based management home directory. Console You can now place any files in the folder and they will be synchronized with the iFolder server. Install iFolder Client The iFolder client is a Windows application that monitors files Post iFolder Installation Considerations for changes and synchronizes them with the iFolder server. To First, you must enable iFolder for each user account that will install the iFolder client, go to the URL of the server where need to access iFolder. This must be completed before users iFolder is installed by using the IP address you assigned to the attempt to login. This process is simple and is described below. iFolder server, such as: 1. Access the iFolder Management Console by typing: http://ip_address http://ip_address/iFolderServer/Admin You will see a screen like the one in Figure 6. 2. Click the link for user management. 3. Login with an admin user if prompted. 4. Click the Advanced Search link on the left navigation bar.

http://www.novell.com/appnotes October 2003 111 Net Management

5. You can specify a criteria here to search for users or just Conclusion search for all users in the tree and click Search as shown in In this month’s article we talked about the iFolder storage solu- Figure 7. tion. We covered the components of iFolder, features, and how to install the iFolder server and client. Next month, we’ll detail the features of iFolder and administrative considerations.

Figure 7: Searching for users.

6. From this screen, you can check the users that you want to use iFolder, or check to enable all user accounts. iFolder Browser Client To access your files from a computer that does not have the iFolder client, perform the following. 1. Open a browser and type the URL that specifies the iFolder server, such as: http://ip_address 2. Click Login on the left navigation bar. 3. Type your username, password, and pass phrase. 4. Grant permission to the Java certificates if prompted. 5. You will see a Windows Explorer-type window inside the browser that lets you access your iFolder files as shown in Figure 8.

Figure 8: The window inside the browser lets you access your iFolder files.

http://www.novell.com/appnotes October 2003 112 Net Management

Tips and Tricks

Navigating the AppNotes Web Site Effectively

Robert Rodriguez Research Engineer Novell, Inc. [email protected]

In previous issues we have looked at the way the Novell website is structured. In this issue we will take a close look at the way the AppNotes website is structured and the best methods for finding articles from the AppNotes archives. The AppNotes website is a bit more complex than the average Novell subsite because of data density. The AppNotes website contains articles dating back to 1990 (although 1990 - 1995 contains only selected articles). Why keep all the old articles? After all, most web-based maga- zines only keep recent articles. Well, it has been our experience that our archives generate a large number of page views based on older products. Does anyone have a NetWare 4.x server? Figure 1: The AppNotes navigation menu. How about a NetWare 5.x? A number of you do and our archives act as a good source of information on those products. Any menu with a right pointing arrow opens a sub-menu when In fact, as of August 2003 we have about six articles dating moused over. Below is a description of the links and what pages back to 2000 and 2001 that are in the Top 50 for page views. they open: AppNotes Home The AppNotes Navigation Menu • AppNotes home always goes to the cover page for the As mentioned in “Navigating Novell’s Web Site Effectively” current issue. (http://developer.novell.com/research/sections/netmanage/tips/ 2003/august/t030801.htm), all Novell subsites have their own Past Issues left column navigation (see Figure 1). •The article archive link/page (see Figure 2) allows you to select a year of articles to view. From 1994 to 2000, Developer Notes were a separate publication and those articles are listed seperately. Section articles are included in these pages beginning in December 2001. In fact, starting in December 2001 the pages are basicly a web version of the table of contents for the magazine.

http://www.novell.com/appnotes October 2003 113 Net Management

Figure 2: The past issues menu. Figure 3: The contact us menu.

• The section archive link/page lists the sections in their • The contact us link/page provides information on how the four major groups: Net Management, Net Support, Code AppNotes staff can be contacted. The page has mailing Break and Viewpoints. These groups then lead to pages address, email address and phone numbers. There is also a where you can view every section article for that group in permissions area where you can contact us regarding chronological order. reprints • The how-to archive link/page contains a list of major • The feedback link/page allows customers to contact the articles that are designed to address topics of key strategic AppNotes staff directly. There’s no going through a importance to Novell’s customers, particularly the webmaster with this link. Let us know if you are having developer community. Articles are sorted by category, problems with links, want to suggest a correction or just such as application development, web development and want to say hello. NetWare. • The help link/page provides basic information about some • The cumulative index is a group of pages that are a of the more common problems we see (such as printing). If keyword cross-reference of all AppNotes articles. This you are having a little trouble, try checking here first. index is currently undergoing a major revision and at the time of this writing is out of date. However, it is still an • The help with Palm link/page provides information on excellent resource for searching articles prior to September how to view our articles using your Palm OS computing 2002. device. The AppNotes team started providing Palm binary files in December 2000. • The search link/page is a custom search. This search engine deals only with AppNotes content. To search the We also started offering Win CE format documents in entire Novell web site, use the Search link at the top of the March 2002. These documents are a variation of Word page (in the top navigation). format with the graphics removed in order to allow proper formatting and small document size. Contact Us eBooks and Downloads • The email notification link/page allows you to sign up to receive email notification on the latest issue of AppNotes. • The ebooks link/page displays all eBooks created for It’s a great time saver. We’ll let you know when new issues AppNotes. eBooks are PDF files that are equivelent to the come out and provide you with all the links you need to get entire magazine. The layout of the eBook is exactly the to the articles. same as a printed copy of AppNotes. The AppNotes team has created eBooks on back issues to September 2001.

http://www.novell.com/appnotes October 2003 114 Net Management

Other Resources • The related links link/page contains URLs that the AppNotes staff thinks are useful to the AppNotes reader. If you have any suggestions, just use the feedback link and give us your suggestions.

Figure 4: The ebooks/downloads menu.

• Some AppNotes articles include sample files and supplemental documentation. The downloads link/page gives you access to all of these files in one page. The page starts with a legal notice before presenting you with a list of all our downloads. Figure 5: The other resources menu.

• The masthead link/page lists the AppNotes editorial staff.

http://www.novell.com/appnotes October 2003 115 Net Management

Directory Primer

eDirectory 8.7 Features

Jeff Fischer Master, read/write, and read only replicas contain all objects Research Engineer and attributes for a given partition. A master replica dictates the Novell AppNotes changes that are made to the Directory and synchronizes these [email protected] changes with the other replicas. A read/write receives changes from the master replica and is updated. A read only does not Last month we talked about how to install iManager on update itself. NetWare, Windows, and Linux. This month we will talk about Subordinate reference replicas are used to connect the tree new features in eDirectory 8.7 and Directory administration together. They are basically pointers to objects in the Directory. through iManager. Filtered replicas contain a subset of information from the entire With the new iManager tool, most of the functionality of DSRe- partition. Filters are created specifying which classes and pair, DSMerge, and other console utilities has been integrated attributes of the Directory will be allowed to pass during into iManager. This means that you don’t have to have direct synchronization. Changes made to the Directory for objects access to the server console in order to perform what have tradi- outside the filter are ignored by a filtered replica. tionally been server-side only administration tasks, such as replica and partition operations. These operations can now be performed from within a browser. Role of Partition and Replica Management It is important to understand the types of replicas available Partition and Replica Operations when planning your Directory tree. A Directory administrator must use careful planning to optimize the Directory structure Partitions are logical divisions of the eDirectory database that and receive good performance and fault tolerance. form a unit of data in the eDirectory tree that Directory adminis- trators use to store and replicate eDirectory information. Each In iManager, when you grant someone the role of Partition and partition consists of a container object, all objects contained in Replica Management, they can perform partition operations in it, and the information about those objects. Partitions do not the tree such as creating, merging, or moving a partition. include any information about the or the directories and files contained there. Partitions only contain data about To create or move a partition, follow the steps below. eDirectory. To create a partition, follow the steps below. Instead of storing a copy of the entire eDirectory database on 1. Login to iManager. each server, you can make a copy of the eDirectory partition 2. Expand Partition and Replica Management. and store it on many servers across the network. Each copy of the partition is known as a replica. You can create any number 3. Click Create or Delete Partition. of replicas for each eDirectory partition and store them on any 4. Browse to and select the container where you want to server. The types of replicas are: create the partition or the child partition you want to •Master merge. • Read/Write 5. Click OK. •Read Only To move a partition, follow the steps below. • Subordinate References 1. Expand Partition and Replica Management. • Filtered Read/Write 2. Click Move Partition. • Filtered Read Only 3. Browse to and select the partition you want to move.

http://www.novell.com/appnotes October 2003 116 Net Management

4. Browse to and select the new location for the partition. • Provide hot, continuous backup so the Directory data can 5. Click OK. remain open during backup 6. Once you have reviewed that all the necessary servers that • Supports quick restores have a replica of the partition are up and running, click • Is accessible through a browser Move. • Performs a complete backup of the Directory database 7. Click OK. including NICI security files, stream files, and any The replica view allows you to see the replicas and partitions in administrator specified system files such as the the tree in two views. You can select a server object and view autoexec.ncf file. the replicas that the server contains or you can select a partition The Backup eMTool provides hot continuous backup of the and view the servers that contain a replica of that partition, also eDirectory database on an individual server. You can back up known as the replica ring. Both of these views are helpful when eDirectory on your server without closing the database, and you you are troubleshooting partition operations. still get a complete backup that is a snapshot of the moment when the backup began. This feature means that you can create From this view, you can also delete a replica from a server, add a backup at any time and eDirectory will be accessible a replica, view the details of a replica, view and change the type throughout the process. Hot continuous backup is the default of a replica, and view or modify the filter of a replica. behavior. To open the replica view, follow the steps below. The new backup also lets you turn on roll-forward logging to 1. Expand Partition and Replica Management. keep a record of transactions in the database since the last backup, so you can restore a server to the state it was in at the 2. Click Replica View. moment before it went down. You must turn on roll-forward 3. Browse to and select the partition or server you want to logging for servers that participate in a replica ring, so that you see. can restore a server back to the synchronization state that the 4. Click OK other servers expect. If you don't, when you try to restore from your backup files you will get errors and the database will not You will now see a screen that shows the servers that hold open. Roll-forward logging is off by default. replicas of the partition. You can delete a replica, change the type of the replica, or add a filter to the replica. To access the backup tool from iManager, perform the following steps. eDirectory Maintenance Utilities 1. Expand eDirectory Maintenance Utilities. This role is a collection of utilities from ConsoleOne and the 2. Click Backup. server console that have been rolled into iManager. Novell eDirectory is designed to provide fault tolerance for the tree 3. Enter a username, password, and context for the server through replication, so that if one server is not available, other where you want to perform the backup. servers can provide access. Replication is the primary method 4. Click Next. for protecting eDirectory. 5. Specify the backup file options, such as full, incremental Replication, however, is not possible in a single-server environ- and name and location of the backup file. ment. Also, replication might not provide a complete restore of 6. Click Next. individual servers in case of a server hardware failure or other damage, or in the event of a disaster such as a fire or flood in 7. Specify whether to include NICI files in the backup. which you lose multiple servers. Backing up eDirectory on each Novell recommends that you always include NICI files. server increases the fault tolerance for your network. 8. Specify any additional files to backup. eDirectory 8.7 introduces a new backup and restore utility 9. Click Start. called the eDirectory Backup eMTool to back up the eDirectory You will see a screen similar to Figure 1’s screen shot when the database on your individual servers. backup completes. This tool, integrated into iManager, has the following benefits. • It can backup multiple platforms

http://www.novell.com/appnotes October 2003 117 Net Management

Figure 2: Basic Repair options. Figure 1: Accessing the Backup Tool in the eDirectory Maintenance Utilities. The eDirectory Service Manager provides information about The Basic Repair option in eDirectory Maintenance Utilities available eDirectory services and their status. You can also use offers a few of the Directory repair options available in DSRe- the Service Manager to start and stop these services. pair. You can perform: Service Manager only manages eDirectory services. This is • Unattended full repair done with the help of the dsservcfg.xml configuration file, which lists the services to be managed on various platforms. It • Local Database Repair also lets you add or remove services from the list. • Check External References • Single Object Repair You can make your selection depending on what you need to repair. Figure 2 is a screen shot of the Basic Repair options.

Figure 3: A screen shot of the eDirectory Service Manager.

The ICE Utility The Novell Import Conversion Export Utility or ICE lets you import or export data to and from LDIF files into the Directory. You can also migrate data between LDAP servers. An LDIF file is an ordinary text file that lists Directory objects, attributes and values.

http://www.novell.com/appnotes October 2003 118 Net Management

For example, if you want to import LDIF data into an LDAP While indexes improve search performance, additional indexes directory, the Novell Import Conversion Export engine uses an also add to directory update time. As a general rule, create new LDIF source handler to read an LDIF file and an LDAP destina- indexes only if you suspect performance issues are related to a tion handler to send the data to the LDAP directory server. particular directory lookup. To access the ICE utility, follow the steps below. There are four types of indexes: User, Auto-Added, Opera- tional, and System. User and Auto-Added can be deleted by an 1. Click Import Convert Export Wizard in iManager. administrator. Operational and System are critical to the opera- 2. Select whether to import, export, or migrate data. tion of eDirectory and cannot be deleted. Auto-Added, System, 3. Specify the file type. and Operational indexes are added by the system. An adminis- trator can create a User index type. 4. Browse to and select the file to use as the source file. When you create an index, you specify one of three rules to 5. Click Next. which the index will operate. The three rules are value, pres- 6. Specify server, port, and DER file if needed. ence, and substring. If you specify value, the index will match the value you specify exactly or the first part of the value. The 7. Specify any advanced options. I recommend using LBURP example given in the help says that if you specify Jensen as the if you are using a very large LDIF file and allow forward value of a lastname attribute, the index will match the values references. Jensen or Jen. 8. Click Finish. If you specify presence, the index will only look to see if there Index Manager is an attribute of the Server object that lets you is a value present for the attribute. If you specify substring, the manage database indexes. These indexes are used by eDirectory index will look at the value of the attribute and match an to significantly improve query performance. attribute where the specified value is a substring of the attribute value. Novell eDirectory ships with a set of indexes that provide basic query functionality. These default indexes are for the following To create indexes in iManager, perform the following steps. attributes: 1. Click Index Management. 2. Select a server where you want to create the index. You will see a list of the indexes on the server. Attribute Attribute 3. Click the Create button. CN Aliased Object Name 4. Type in a name for the index. dc Obituary 5. Select the attribute to index. Given Name Member 6. Select the rule for the index. Surname Reference 7. Click OK. You will see the index appear in the list of uniqueID Equivalent to Me indexes on the server as shown in the following screen shot (Figure 4). GUID NLS:Common Certificate cn_ss Revision uniqueID_SS extensionInfo ldapAttributeList ldapClassList

You can also create customized indexes to further improve eDirectory performance in your environment. For example, if your organization has implemented a new LDAP application that looks up an attribute not indexed by default, it might be useful to create an index for that attribute.

http://www.novell.com/appnotes October 2003 119 Net Management

Figure 4: Creating an index. the traditional NetWare tools on eDirectory for Windows and Linux. 8. Click OK. In the coming months, we’ll talk about merging trees, DSTrace Conclusion commands, eDirectory Health checks and other eDirectory topics. So stay tuned. This month we have talked about some of the Directory admin- istration options in iManager and some of the new features of the eDirectory. Next month we’ll go into detail on how to run

http://www.novell.com/appnotes October 2003 120 Net Support

TIDbits

The Technical Information Documents (TIDs) are brought to NetWare servers. While not a hard procedure, you still need to you by Novell’s Support Connection site, which you can find at know the steps necessary to complete the task. http://support.novell.com. We’ll be looking at a selection of To assist you in this process, take a look at TID #10064635. TIDs from several categories, giving you a brief summary of Entitled “How To Install Additive Licenses on NetWare 5,” this the issue the TID addresses. TID gives you the steps necessary to perform this task. The TID The categories for this month include Novell Directory Services also states that “When installing an upgrade license, you are (NDS) or eDirectory, Novell Small Business Suite, NetWare 5, required to enter an Activation Key to proceed with the installa- NetWare 6, Novell iChain, ZENworks for Desktops 4, Novell tion” and then shoos you off to another TID (TID #10022674) Client for /XP, Novell iFolder 2.1, Novell to perform that part of the process. exteNd Director 4.1, GroupWise 6.5, and the Novell exteNd This TID can be used for the following small business server Composer. OSes: • Novell Small Business Suite 5.0 • Novell Small Business Suite 5.1 Novell Directory Services (NDS) or eDirectory • Novell NetWare 5.0 The TID entitled “Steps to Force NDS (eDirectory) Off a • Novell NetWare 5.1 Server,” has been updated yet again. Formally known as TIDs #1199956 and #10010905, this TID (which is now numbered To find out more about TID #10064635, see http:// #10013746) gives you information on how to remove NDS support.novell.com/cgi-bin/search/searchtid.cgi?/ (eDirectory) when there is no corresponding Server object. 10064635.htm The TID gives the following NetWare server versions to which this information applies:

• Novell NetWare 4.11 NetWare 5 • Novell NetWare 5.0 So you want to upgrade your NetWare 5.1 servers to run the • Novell NetWare 5.1 latest eDirectory software. TO help you on your way, take a look at TID #10072620. Entitled “Upgrade NetWare 5.1 • Novell NetWare 6.0 Servers to eDirectory 8.6,” this TID gives you all of the steps The TID then gives the steps necessary to take NDS off a server you need to do this process. for a number of reasons. If you are in such a situation, this TID According to the document, it “outlines specific tasks to is a good place to begin finding such information. It also refers upgrade existing NetWare 5.1 with DS 7.xx, DS 8.xx or eDirec- to some other TIDs to help you finish the process. tory 85.xx to eDirectory 8.6.2. To go directly to TID #10013746 and get the information you “These steps can be used as a checklist to upgrade NetWare 6 to need to forcably remove eDirectory from a server, see http:// eDirectory 8.6.2. If you have Support Pack 2 for NetWare 6 support.novell.com/cgi-bin/search/searchtid.cgi?/ already installed, then you are already running eDirectory 8.6.2. 10013746.htm Not all steps listed apply to NetWare 6 servers.” Consequently, this TID covers the following OSes and eDirec- tory versions: Novell Small Business Suite • Novell NetWare 5.1 Some of you small business owners may not be familiar with • Novell NetWare 6 the process of installing additional user licenses on your • Novell eDirectory 8.6.2

http://www.novell.com/appnotes October 2003 121 Net Support

• Novell eDirectory 8.6 According to the TID, “The information in this Readme file To see TID #10072620 and receive instructions on how to pertains to Novell ZENworks for Desktops (ZfD) 4 Support perform this upgrade, see http://support.novell.com/cgi-bin/ Pack (SP) 1b. search/searchtid.cgi?/10072620.htm “This Support Pack contains updates for all components contained in the ZENworks for Desktops product only. If the Support Pack file was downloaded, it must be extracted at the root of the drive because it contains directory paths that could NetWare 6 exceed the DOS limits. If you are having troubles exporting NFS files from your “The purpose of this Support Pack is to provide a bundle of NetWare 6.5 servers, take a look at TID #2966865. Entitled fixes that have all been tested together. These files have under- “Corrected PERL Script for NFS Exports,” this TID contains a gone component testing, core OS testing, and integration testing new NFSPERL1.TXT file that is placed in a self-extracting with other Novell products. NFSPERL1.EXE file. The new script corrects some flaws that “Do not install individual files from the Support Pack.” existed in the released script. To go directly to TID #2965658 and download the ZENworks According to the TID, “The attached perl script converts old for Desktops 4 Support Pack 1b, go to http:// style NFS exports (from the files SYS:ETC\NFSEXPRT and support.novell.com/cgi-bin/search/searchtid.cgi?/2965658.htm NFSTHOST) to the new format (in SYS:ETC\EXPORTS) used by NetWare 6.5. The script that shipped in NetWare 6.5 had a few issues, which are now corrected in this script.”

So if you are needing to export NFS files along with other Novell Client for Windows 2000/XP UNIX connectivity issues, first take a look at TID #2966865, which can be found at http://support.novell.com/cgi-bin/search/ You have the following configuration and you want to imple- searchtid.cgi?/2966865.htm. Then grab the self-extracting ment LDAP contextless login: NFSPERL1.EXE file. • Contextless Login • Novell Client 4.9 for Windows NT/2000/XP • Novell eDirectory Novell iChain • Novell NetWare 6.5 You are running some version of Novell iChain (2.0, 2.1, or To help you along these lines, TID #10050160 provides you 2.2) and you are having troubles with iChain sending login with some links to common issues found with LDAP Context- information using Form FIll. If this pretty well sums up your less Login. So if you are interested in making LDAP Context- present situation, take a look at TID #10070071. less Login work, take a look at TID #10050160 at http:// support.novell.com/cgi-bin/search/searchtid.cgi?/ Entitled “Troubleshooting iChain Form Fill,” this TID gives 10050160.htm you nine steps necessary to help you narrow down the line of possibilities so you can complete the task at hand. To access TID #10070071 and on troubleshooting tips, go to http:// support.novell.com/cgi-bin/search/searchtid.cgi?/ 10070071.htm Novell iFolder 2.1 You are running a version of Novell iFolder (either iFolder 1.03, 2.0, or 2.1) and you have just installed the Microsoft Internet Explorer 6.0 Service Pack 1. Now you are receiving a ZENworks for Desktops 4 blank grey screen when logging into the iFolder applet. There is a ZENworks for Desktops 4 Support Pack 1b available According to the TID #10082034, “the issue stems from a secu- that is dated August 15, 2003. The TID number is #2965658 rity fix that Microsoft put into SP1 for Internet Explorer 6.0. and contains the zfd4sp1b.exe file. TID This TID also contains Basically the issue resides from the fact that the certificate is not updated documentation to clarify “Installing the ZENworks for being placed into the SSL cache on the browser. This issue will Desktops Management Agent.” be seen when you are using a page with frames and the parent

http://www.novell.com/appnotes October 2003 122 Net Support

window is going over http, but a child window is going over support.novell.com/cgi-bin/search/searchtid.cgi?/ https.” 10079883.htm The TID then goes on to give you both a workaround and a fix to this problem. To read up on TID #10082034, see http:// support.novell.com/cgi-bin/search/searchtid.cgi?/ 10082034.htm Novell Composer 4.2 You are installing the Novell exteNd Composer 4.2 Enterprise edition on a Solaris 8 machine and you are receiving the following error:

Novell exteNd Director 4.1 An unhandled error occurred that has prevented wizard bean If you would like to run NetWare web-based applications on all "bean2" from displaying: cluster nodes in a NetWare 6 cluster, regardless of which cluster java.lang.Exception: The wizard bean "bean" could not be loaded node is running Novell Portal Services, take a look at TID because the following exception occurred: #10066652. This TID is entitled “Novell Portal Services 1.5 on java.lang.NoClassDefFoundError: com/sssw/b2b/installshield/ preinstall/GVPreInstallPanel$ConsoleInteraction at a NetWare 6 Cluster” and comes with the following warnings: com.installshield.wizard.awt.AWTWizardUI.currentBeanChange “These install notes assume a certain familiarity with both d(AWTWizardUI.java:1246) at NetWare Cluster Services and Novell Portal Services. It is com.installshield.wizard.StandardWizardListener.currentBeanCh advised that you read and understand the entire document anged(StandardWizardListener.java:78) at com.installshield.wizard.Wizard$RunThread.run(Wizard.java:153 before you proceed. 5) “A cluster typically has a shared volume with an IP address assigned to it, this will be referred to in these instructions as Consequently, you are unable to complete the installation of SharedVOL or SharedIP. Simply replace these tags with the Novell Composer 4.2. If you are having such a problem, take a real volume name and the real IP address of your cluster. look at TID #10086293. Installing from a workstation is recommended.” Entitled “Receive an Error During the Installation of Composer To read up on TID #10066652 and download the dex41sso.exe 4.2 Enterprise,” this TID gives you the simple facts (bad ISO file, see http://support.novell.com/cgi-bin/search/ image) and what to do about it. So if you are experiencing such searchtid.cgi?/10066652.htm a problem on your Solaris 8 machine as you install Novell exteNd Composer 4.2, get out to http://support.novell.com/cgi- bin/search/searchtid.cgi?/10086293.htm

GroupWise 6.5 You are running GroupWise 6 and you are receiving the You Want Some More? following messages: If you want to find more TIDs in these several categories or on • POA TCP Handler threads are maxing out at 50 any other Novell products, perform the following steps from • Opening GroupWise email and other GroupWise client your browser at http://support.novell.com. activity is slow. In the list of Support Links that appear either along the left-hand • Can happen any time of day side or in the middle of the screen, click on the “Product- Specific Support” link. From the resulting list of Novell prod- • User unable to login to GroupWise client ucts, select the product of your choice. If such is your problem as well or something similar, take a look at TID #10079883. Entitled “POA TCP Handler Threads are Under the “What’s New” category, click on “Last 7 days” to see Maxing Out at 50,” the TID gives you the solution to the the technical documents that were created or have been updated problem, plus a number of troubleshooting tips to get you on in the last 7 days for the product you selected. You can also your way. look at documents that have been created in the last 14 or 30 days. To go directly to TID #10079883 and get the information you need to keep the Post Office Agent working, see http:// Choose the TIDs that apply to your circumstances.

http://www.novell.com/appnotes October 2003 123 Net Support

Dear Ab-End

BMAS to NMAS Migration Tool GroupWise Web authentication window with a red “Your ses- Dear Ab-end: ActivCard has announced ActivPack 2.0 for sion expired” alert. Why am I getting this error? Novell eDirectory, which includes their full-featured method —Gadgeting in Gauteng for NMAS and a BMAS-to-NMAS migration tool. Novell cus- tomers using ActivCard tokens will now be able to easily Dear Gadgeting: You must first disable all cookies from the upgrade from older versions of BorderManager to Novell Bor- WEBACC.CFG file. For example: derManager 3.8 (which uses and includes NMAS 2.2 as its • Templates.Interface.1.disableProxyCache=false authentication framework). —Name Withheld to Protect the Innocent • Templates.Interface.1.useCookie=false • Templates.Interface.2.disableProxyCache=false Dear Protected: Yes you are right. ActivPack for Novell • Templates.Interface.2.useCookie=false eDirectory offers a comprehensive solution for seamless inte- gration and management of digital identity services within • Templates.Interface.3.disableProxyCache=false Novell eDirectory, Novell ConsoleOne, Novell Modular • Templates.Interface.3.useCookie=false Authentication Service (NMAS), and Novell iChain. ActivPack for Novell eDirectory secures authentication for local login to • Templates.Interface.4.disableProxyCache=false Novell eDirectory, remote access via Novell BorderManager, • Templates.Interface.4.useCookie=false and web access through Novell iChain. • Templates.Interface.5.disableProxyCache=false When used with smart cards and ActivCard Gold, ActivPack • Templates.Interface.5.useCookie=false for Novell eDirectory offers methods for authenticating and accessing systems and services using private keys, digital certif- • Security.UseClientCookie.enable=false icates, dynamic passwords, or static passwords stored securely on the user’s card. When using token-based authentication, users are granted access to diverse network and Internet services, with dynamic passwords generated on the token for Email Notifications in exteNd Director’s strong two-factor identification. Community Gadget Embedded in Novell ConsoleOne, ActivPack for Novell Dear Ab-end: How do you get the email notifications to work eDirectory enables Novell administrators to centrally manage in the Community Gadget and Registration of the Novell (create, distribute, and control) the credentials for all users exteNd Director? managed by Novell eDirectory. ActivPack for Novell eDirec- —Patiently Extending in Folkestone tory provides a single point of administration with a consistent approach for all administrative features (managing users, desk- Dear Patient: For the community, you must configure an tops, network, security, applications, and so forth). SMTP server for Extend Director Standard to use. Portal Administration -> Portal ->Configuration ->All Settings -> SMTP Server. Now enter the SMTP address you wish to use. For example, you might put mail.myrealbox.com and the User- Red Alert with GW65 Authentication name and Password. For the Registration Gadget, check under “All Settings” for the gadget assignment. Dear Ab-end: I am running exteNd 4.1 on NetWare 6.0 with Support Pack 3, as well as eDirectory 8.7.0.3 and the Group- Wise 6.5 gadget. When I go to new GroupWise 6.5 page, I can see Mail, Calendar, Webaccess tabs with my letters and so on. But when I try read some letter or open webaccess tab, I get a

http://www.novell.com/appnotes October 2003 124 Net Support

Access Problems on a NW6 Server ory leak? If so, is it in NetWare or in my backup or in the Java Dear Ab-end: I’m having odd access problems with my Net- applications? Ware 6 server--some users can get onto it and others cannot. —Running Out in Rouen For example, Windows 9x users, IPX users, and admin usually can gain access, but the Windows NT/2000/XP users, IP users, Dear Out: What you are probably seeing is memory fragmenta- and non-admin users usually cannot. tion and not a memory leak, per se. During specific instances of I’ve checked client versions, taken LAN traces and applied allocating and freeing memory, memory fragmentation can Support Pack 3 to the NetWare 6 server, nothing seems to help. occur, thereby reducing the largest available space in memory What do I do now? for new memory allocations. To improve the process of allo- cating and freeing memory, Novell has released —Alex in Aberdeen NW56UP3.exe, which contains updated SERVER.EXE files for NW51SP5, NW51SP6, NW6SP2 and NW6SP3. If the Dear Alex: I’m afraid that this is yet another licensing issue. problem remains after you apply the update, your problem is a For some unknown reasons licensing problems rarely affect the memory leak in your backup or Java applications. Windows 9x clients or IPX users. After applying Support Pack 3, you need to also apply NLS603ft.exe. Also ensure that every server has a unique server license assigned to it and if you have installed non-MLA/CLA, user Running NW65 on Centrino Chipsets (Connection) licenses, ensure that these are not assigned to a server and are in the same container as the user objects. These Dear Ab-end: After installing NetWare 6.5 on my Laptop with licenses can also be above in the tree (but not to the side or a Centrino (Pentium M) chipset, the server will not come up. down the tree). The NetWare 6.5 kernel assumes support for PAE (Physical Address Extension) in the list of Standard Processor Features on the CPU. The newer Pentium M processors that are typically present in machines that are based on the Centrino chipset do not provide this support, which prevents the server from boot- NW6SP3 and Compaq Servers Getting Random ing on these machines. Where to go from here? Drive Deactivation Messages —Matching Chipsets in Cuxhaven Dear Ab-end: After installing NetWare 6 Support Pack 3 throughout my organization, my Compaq servers are getting Dear Matching: Download and apply the NW65OSa.EXE random “Drive Deactivation” messages, but my other servers patch file. (This also applies when you are using VMWare or do not get such messages. However Hewlett-Packard swears Virtual PC.) there is no problem with their servers or hard disk drives. Are they right? —Driven in Denver WinNT/2K/XP Client Affecting Admin Tools Dear Driven: Yes. The problem lies between the HBAs that use the Compaq CPQRAID.ham driver and NetWare 6 Support Dear Ab-end: After installing the Novell client for Windows Pack 3, which causes drive deactivations. Novell has released a NT/2000/XP version 4.90, the administrative tools no longer fixed SERVER.EXE file in the NW56UP3.exe update. indicate an address for users that are logged in, and address restrictions and concurrent login restrictions no longer work. What happened? —Toolin’ Around in Tarbes

NW51 and NW6 Servers Running Dear Toolin’: The v4.90 client uses NMAS authentication by Dear Ab-end: I have servers with up to 4GB of memory, but I default. With NMAS authentication, the client’s address is not still get messages on the server console indicating that the recorded in NDS. To go back to the old behavior, disable server is running out of memory. This message mostly happens NMAS authentication in the client properties. when I am running a backup or any kind of Java process and after the server has been up for a week or two. This happens on both my NetWare 5.1 and NetWare 6 servers. Do I have a mem-

http://www.novell.com/appnotes October 2003 125 Net Support

Problems with ConsoleOne and SuSE 8.2 export LANG=en Dear Ab-end: I’m trying to get ConsoleOne working on SuSE Then logout and log back in. In order to install ConsoleOne, 8.2. I’ve searched the newsgroup posts and added the following first install the NDSslp-8.7.0-1.i386.rpm with the -f (force/ line to my script to overcome the libpthread.so.0: replace files) switch. During the c1-install script choose, not to -Djava.library.path=/usr/lib install the JVM. However, that hasn’t worked for me. I think the main issue is Java and SuSE. I can’t figure out how to get SuSE to recognize a JRE or JDK installation. Can anyone help solve this annoying mystery of ConsoleOne and SuSE 8.2? NW6SP3 Server Hangs on Down Command —Mystified by Java Dear Ab-end: I have a NetWare 6 Support Pack 3 server. When I issue the “down” command, the server hangs when it Dear Mystified: This answer comes from the Linux-Services dismounts the SYS volume. Any suggestions? newsgroup: —Driven to Distraction in Dagestan Download and install j2re-1_4_1_04-fcs-linux-i586.rpm and Dear Driven: First check that your BIOS is up to date. If you create a /etc/profile.local with the following lines for java: are using the i2o drivers (bkstrosm.ham, etc.), this is a known • export JAVA_HOME=/usr/java/j2re1.4.1_04 problem and here’s what you do. The simple fix to this problem is to create an NCF file, which will perform some important • export LD_LIBRARY_PATH=/usr/java/j2re1.4.1_04 housekeeping operations before taking the server DOWN and /lib:/usr/lib:/lib:/usr/local/lib exiting to DOS. An example of this NCF is given below. • export JRE_HOME=/usr/java/j2re1.4.1_04 This NCF file must be called “SHUTDOWN.NCF” and it must SuSE sets the LANG variable equal to en_US. So add the be stored in the SYS:\SYSTEM directory. following line to the /etc/profile.local file: SHUTDOWN.NCF:

# This procedure will correctly DOWN a NetWare 6 SP3 server to DOS # ONLY USE THIS PROCEDURE if the Server uses an I2O controller with BKSTROSM # loaded and NSS enabled. This procedure should also cope with Native # volumes that might also be mounted. # First close down all JAVA classes java -exit # JAVA should already be unloaded but unload again unload java # Give time for JAVA to full clean up (housekeeping) delay 10 # Deactivate all Volumes without prompting nss /forcedeactivate=all # Deactivate all Pools nss /pooldeactivate=all # Dismount any Native Volumes dismount all # Unload the Novell Block Storage Manager unload bkstrosm # Give time to Block Storage Manager to unload delay 5

To use this example, simply copy and paste the above script DOWN command will automatically call and run SHUT- into an NCF file called SHUTDOWN.NCF and store it in the DOWN.NCF prior to running its own internal procedures. SYS:\SYSTEM directory. Then, when the server needs to be taken down, type DOWN at the server’s console prompt. The

http://www.novell.com/appnotes October 2003 126 Code Break

Developer Q & A

I’m creating a Win2000 service that calls a Visual Basic program which needs some files that reside on a box Q. with Novell Netware 4.11. I’ve tried a couple of different ways.

I’ve tried to access the sharedrive as “Bobby” with NET USE, The response I get is “System Error 87,” which is “Bad Parameter.” If I change the UNC path to another win2000 box, it works, so it isn’t a bad parameter.

I’ve also tried to access the sharedrive directly using Novell Netware but I’m a total newbie to Novell, products so can someone show me the way?

I also installed the Delphi_libs and tried to compile NDSLoginSample and I get this error:

SnapIt32.dcu not found

What does this error message mean? Where can I learn more about Novell NetWare and Delphi 6?

There are a couple of ways for doing that. The simplest is probably with what you may have already tried; the A. NET command. I guess the reason why this fails is that the user “Bobby” isn’t in the NetWare server’s bindery context.

Go to the NetWare server and type:

config

at the server console. This lists for you the bindery contexts that are set. You will need to add the container where “Bobby” exists to this list. You can use the MONITOR.NLM or enter this directly into autoexec.ncf. This should fix your issue. The easiest solution is probably to type

edit autoexec.ncf

at the server console prompt and look for the SET BINDERY CONTEXT entry. Add a semi-colon to the end of the current statement and add the context of the location where Bobby resides. For other approaches you have to install the Novell Client software.

How can you add an auxiliary class to users using an ActiveX control? I need to add posixAccount to many users Q. and set the UID, GID, and homeDirectory attributes. I’m using eDirectory 8.7, so auxillary classes are supported.

The auxillary class I’m using already exists and I can manually add it to users using ConsoleOne, and set the required fields. I just need to be able to do it through a program.

http://www.novell.com/appnotes October 2003 127 Code Break

To programatically add an auxiliary class to an object instance, you need to add the auxillary class to the list of A. objectclass definitions. If you are using the LDAP control (nwidir), it’s easy with the addfieldvalue(“objectclass”, “myauxclass”) method.

If you are using the NDAP control (nwdir), there is no addfieldvalue method, so you need to use getfieldvalue(“objectclass”) to read the existing objectclasses into an array, resize the array (in Visual Basic it’s redim preserve) and add the auxillary class to the array. Then run setfieldvalue with the array as the contents. By the way, the documentation is wrong for this control where it just shows adding the one auxillary class value. This has been reported as a bug.

Q. I’m new to programming with VB.NET and Novell and I’m confused on a few issues. First, since I’m just starting out, is it best to use the ActiveX libraries or use the VB library? I’m not sure what the advantages/disadvantages are for each, but I’m slowly getting a grasp of the ActiveX components.

Second, to use the VB library, it’s my understanding that the Netware.txt file must be incorporated into the VB code in order to use those functions. How is this accomplished using VB.NET? Primarily, I would like to write applications that read, write, and create user information.

The benefit of the ActiveX controls is that they are simple to use. The benefit of the VB libraries is that they are A. fast, but complex to use since you are making direct calls into the Novell dlls, so you are operating at a lower level. Also, the VB libraries use NDAP (native Novell calls) APIs that rely on the Novell client. Although you can make direct DLL calls into LDAP libraries, there aren’t any VB shims available for this, so you would have to write your own.

The ActiveX controls provide for either NDAP or LDAP. With LDAP access you wouldn’t need a client to be installed locally.

For .Net, you also have the complexity of making the .dll calls from managed code. If you are operating purely on the directory, and not on the Novell NetWare file system, you might stick with LDAP ActiveX controls for ease of use. If you need to do something such as NetWare file rights/file access, then you would need to use the NDAP controls.

Does anyone have an example on an OutPutTransformation Event, like removing following events from the XML: Q. ADD, DELETE, MOVE, RENAME, MODIFY? A. See the code sample below.

http://www.novell.com/appnotes October 2003 128 Code Break

I apologize in advance if this has already been discussed, but I haven’t seen it. With the port of “core services” to Q. Linux, will LIBC/CLIB (i.e., the same set of APIs) be made available on Linux so one wouldn’t have to manage multiple code bases?

Novell is working as hard as they can to make LibC compatible with UNIX/Linux. This is a goal that will never A. be completely achieved; however, if you write to POSIX (as much as you can) on NetWare, our goal is that you won’t have to change anything to run on Linux. Obviously, if you code to POSIX on Linux, particularly to interfaces like /exec, etc., you will have to conditionally compile or otherwise fix up your sources to consume procXe, etc., on NetWare. That is as close to single-source support as Novell will come.

For now, there seems to be little reason to port LibC interfaces to Linux. Perhaps we will port our Unicode library or some other component that Linux lacks. But we’re not there yet.

Meanwhile, our effort of the last year and a half to make what POSIX we have more conformant, plus add cool POSIX stuff you need continues. Soon you’ll have a new link flag to indicate that your NLM wants the full POSIX semantic set (as full as we have been able to get it).

The biggest improvement we are targeting for this next release of LibC (in NetWare 6.5 SP1, NetWare 6 and 5 CSP10) is in path strings. These will be UNIX-like and you will probably (we’re still mulling this over) be using

(SYS:)/etc/pathtab

almost as if it were /etc/fstab to indicate how you want to reference local volumes (other than SYS:) and even remote ones. For example, you can already say

"/apache/conf/httpd.conf"

in your code, but if that file were on volume VOL1 instead of SYS, then you would have to code

"VOL1:/apache/conf/httpd.conf"

That’s ugly and not very easy to target in code you want to run indiscriminately on UNIX and NetWare. So, you make an entry (this is still experimental for now) in the /etc/pathtab file thus:

/vol1 VOL1:\

and we will then recognize

"/vol1/apache/conf/httpd.conf"

http://www.novell.com/appnotes October 2003 129 Code Break

just as you might have coded it on UNIX. Similarly, if you access a path on a remote server, you can also do this in /etc/pathtab:

/remote/arnold ARNOLD/SYS:\

or even

/remote/arnold \ARNOLD\SYS\

and then we’ll recognize

"/remote/arnold/apache/conf/httpd.conf"

And so forth. And the fact that I wrote “/remote/arnold” here isn’t important either--it could just as well have been

/schwartznegger /ARNOLD/SYS:\

and you would code

"/schwartznegger/apache/conf/httpd.conf"

We’re hoping this will make life easier.

Does anyone know which field I need to pull to get the user’s last name from NDS? I know the first name is stored Q. in “Given Name.” NWAdmin list the last name as “Last Name,” but I cannot locate the correct field to use. I’m using Excel to pull the information and I’m looking under the UserNDS column.

Try the Surname attribute. The schema for the user object is available at http://developer.novell.com/ndk/doc/ A. ndslib/schm_enu/data/sdk5460.html

I have some .asp scripts on my web server Apache 1.3.28 NetWare 6 Support Pack 2 and all work fine. When I try Q. to secure access to asp pages with NDS authentication, (module Mod_NDS and Mod_TLS), I got an “Insufficient rights to access the page” after I supply the usercode/password. Without the directory directives, all work fine.

Have you enabled NWSEC security? If so, please switch it off. It doesn’t work together with mod_nds. Look at A. sys:system/nwsec.ini.

Is it possible for some one to post a code snippet to read and write to SYN_OCTET_LIST. I am after is “app:fs Q. rights path” attribute. The Novell OCX will not read it so I will need to use the dll's.

http://www.novell.com/appnotes October 2003 130 Code Break

It’s a linked list, so with Visual Basic you must use pointer functions. I wouldn’t want you to try to write to it, A. since it’s a proprietary field. but here’s a rough sample to read a linked list syn_octet_list. I haven’t tested it much, but it seems to work on my test field.

Option Explicit

Private Sub Command1_Click() Dim retCode As Long, contextHandle As Long Dim defContext As String Dim bytename(256) As Dim inBuf As Buf_T, outBuf As Buf_T Dim pInBuf As Long, pOutBuf As Long Dim iterHandle As Long, totalAttrs As Long, totalValues As Long, syntaxID As Long Dim attrValSize As Long Dim i As Integer, j As Integer Dim tempStr As String Dim tempArray() As Byte Dim ptr As Long Dim lConvInfo As Llconv

Dim list As octet_list

iterHandle = NO_MORE_ITERATIONS

' initialize the library retCode = NWCallsInit(0, 0) If retCode <> 0 Then MsgBox "NWcallsInit failed: " + retCode, vbCritical GoTo done End If

' set up unicode tables Call NWLlocaleconv(lConvInfo) retCode = NWInitUnicodeTables(lConvInfo.country_id, lConvInfo.code_page) If retCode <> 0 Then MsgBox "NWcallsInit failed: " + retCode, vbCritical GoTo done End If

' create DS context handle retCode = NWDSCreateContextHandle(contextHandle) If retCode <> 0 Then MsgBox "NWDSCreateContextHandle failed: " + retCode, vbCritical GoTo done End If

defContext = ContextText.text + chr(0) Call StringToByteArray(bytename, defContext) retCode = NWDSSetContext(contextHandle, DCK_NAME_CONTEXT, VarPtr(bytename(0))) If retCode <> 0 Then

http://www.novell.com/appnotes October 2003 131 Code Break

MsgBox "NWDSSetContext failed: " + retCode, vbCritical GoTo done End If

pInBuf = VarPtr(inBuf) pOutBuf = VarPtr(outBuf)

retCode = NWDSAllocBuf(DEFAULT_MESSAGE_LEN, pInBuf) If retCode <> 0 Then MsgBox "NWDSAllocBuf failed: " + retCode, vbCritical GoTo done End If

retCode = NWDSAllocBuf(DEFAULT_MESSAGE_LEN, pOutBuf) If retCode <> 0 Then MsgBox "NWDSAllocBuf failed: " + retCode, vbCritical GoTo done End If

retCode = NWDSInitBuf(contextHandle, DSV_READ, pInBuf) If retCode <> 0 Then MsgBox "NWDSInitBuf failed: " & retCode, vbCritical GoTo done End If

retCode = NWDSPutAttrName(contextHandle, pInBuf, AttributeText.text +chr(0)) If retCode <> 0 Then MsgBox "NWDSPutAttrName failed: " & retCode, vbCritical GoTo done End If

Do

retCode = NWDSRead(contextHandle, ObjectText.text + chr(0), DS_ATTRIBUTE_VALUES, 0, pInBuf, iterHandle, pOutBuf) If retCode <> 0 Then MsgBox "NWDSRead failed: " & retCode, vbCritical GoTo done End If

retCode = NWDSGetAttrCount(contextHandle, pOutBuf, totalAttrs)

If retCode <> 0 Then MsgBox "NWDSGetAttrCount failed: " & retCode, vbCritical GoTo done End If If totalAttrs < 1 Then MsgBox "No Attributes Returned" GoTo done End If

retCode = NWDSGetAttrName(contextHandle, pOutBuf, Name, totalValues, syntaxID)

http://www.novell.com/appnotes October 2003 132 Code Break

If retCode <> 0 Then MsgBox "NWDSGetAttrCount failed: " & retCode, vbCritical GoTo done End If

If syntaxID <> SYN_OCTET_LIST Then MsgBox "Attribute is not of type SYN_OCTET_LIST" GoTo done End If

For i = 0 To totalValues - 1 retCode = NWDSComputeAttrValSize(contextHandle, pOutBuf, syntaxID, attrValSize) If retCode <> 0 Then MsgBox "NWDSComputeAttrValSize failed: " & retCode, vbCritical GoTo done End If

j = LenB(list)

ReDim tempArray(attrValSize - 1) retCode = NWDSGetAttrVal(contextHandle, pOutBuf, SYN_OCTET_LIST, tempArray(0)) If retCode <> 0 Then MsgBox "NWDSGetAttrVal failed: " & retCode, vbCritical GoTo done End If

ptr = VarPtr(list)

Call CopyMemory(ptr, VarPtr(tempArray(0)), j)

Do While ptr <> 0 ptr = list.next ReDim tempArray(list.Length) Call CopyMemory(VarPtr(tempArray(0)), list.data, list.Length) Call ByteArrayToHexString(tempStr, tempArray) MsgBox tempStr If list.next <> 0 Then Call CopyMemory(VarPtr(list), list.next, j) End If Loop

Next

Loop While (iterHandle <> NO_MORE_ITERATIONS) And (retCode = 0)

done: If contextHandle <> 0 Then NWDSFreeContext (contextHandle) End If

http://www.novell.com/appnotes October 2003 133 Code Break

If pInBuf <> 0 Then NWDSFreeBuf (pInBuf) End If

If pInBuf <> 0 Then NWDSFreeBuf (pOutBuf) End If

NWFreeUnicodeTables

NWCallsTerm 0

MsgBox "done"

End Sub

Private Sub Form_Load() ContextText.text = "[root]" ObjectText.text = ".testclass.novell" AttributeText.text = "testOctetList" ContextText.Refresh ObjectText.Refresh AttributeText.Refresh End Sub

http://www.novell.com/appnotes October 2003 134 Code Break

DeveloperNet News

Announcing PartnerNet for ISV/IHV Developers

At BrainShare Europe 2003, Novell customers. Millions of users rely on sale or make an implementation work. announced it will bring leading soft- our technologies every day with thou- In addition, Novell gives you the tech- ware developer and hardware partners sands of partners using our products to nology you need with the licensing into its PartnerNet program, providing build solutions for their customers. model that fits your business needs. new resources for independent soft- What’s more, Novell is bringing its From Per-user licensing to Sliding ware and hardware vendors and networking services to the Web and to Scale, we work with you to tailor a helping them leverage Novell’s global the Linux environment, and only licensing solution that makes the most reach more effectively. The new Novell opens the door for you to a of your opportunities. program will leverage Novell’s Devel- wide range of new open source oppor- Plug into the Novell partner ecosystem operNet program deliverables and add tunities. and make your product the tool choice critical business and technical support “In the last six months, Novell has they use to sell and provide services resources to help leading ISV and IHV taken significant strides to engage the around the thousands of customer solu- developers tap into the Novell installed open source development community,” tions they sell every day. When you base. said Chris Cooper, director of devel- join PartnerNet, you simply commit to The move marks another key step in oper services for Novell. “We’ve port, move, develop or integrate a Novell’s all-out focus on developers, grown to more than 275 open source minimum of one product supporting following April’s creation of Novell projects hosted on Novell Forge, with Novell Nterprise, Nsure or exteNd Forge, a resource for open source 1,700 registered members, and we’re solution families or any of the products development tapping Novell technolo- getting 100,000 plus hits per month. or technologies included within those gies, and the August acquisition of Add this to Novell’s commitment to families. Everything in the Novell Ximian, a Linux innovator and leader maintaining Ximian’s leadership in world is designed to play with the in several leading open source devel- open source initiatives like GNOME products you come up with: solutions opment projects. Independent soft- and Mono, and it’s clear that Novell is created on developer-friendly industry ware and hardware vendors can now putting major resources and brain- standards that work on many different join Novell’s integrator, channel and power behind open source develop- platforms. It’s a world that has plenty training partners under the PartnerNet ment.” of room for you to grow, develop and umbrella, joining an increasingly large succeed. Now your business can reach those and dynamic partner ecosystem around customers and partners as well. Plug Applications will open for PartnerNet Novell solutions. into the power of PartnerNet and drive for ISVs and IHVs on November 3, Novell has spent the last two decades your business effort forward. It’s easy 2003. For additional information about developing a strong partner ecosystem. with Novell. We’ve laid the ground- Novell’s PartnerNet program, With thousands of system integrators work to make it happen for you. including benefits and requirements of and channel partners promoting our Today, there are thousands of channel PartnerNet membership, please visit products and solutions, our partners partners selling Novell products, solu- http://www.novell.com/partners/isvihv make it possible for Novell to reach a tions and services. Your product could constantly expanding arena of be exactly what they need to close a

http://www.novell.com/appnotes October 2003 135 Code Break

Conectiva and Novell to Provide Linux—Latin Style

Aiming to provide Linux users with Nterprise Linux clients in Latin provide Novell Nterprise Linux industry acclaimed network services, America. Services on Conectiva Linux together Conectiva, a leading company in Linux with strategic consulting and technical Novell recently announced its plan to services in Latin America, recently support services means to provide provide customers the option of announced a partnership with Novell. options to the user of the main Linux running all of its advanced network Novell Nterprise Linux Services, platform in the area,” said José services on several leading distribu- which provides file, printing, message Almandoz, Novell’s vice-president for tions of the Linux platform, including and directory management, will be Latin America. For more information, Red Hat and SuSe Enterprise Linux. supported and run on all Conectiva see http://www.osnews.com/ “In order to achieve our plan, we could Linux distributions. Conectiva and story.php?news_id=4404 not ignore Conectiva’s massive pres- Novell will work in close cooperation ence in the Latin American market. To as a team to provide service to major

SourceGear Uses Mono Project Technology From Ximian

SourceGear Corporation will use source software license. The use of Ximian initiated the Mono Project in Mono Project technology to offer Mono technology will enable 2001 with the intent to provide devel- cross-platform versions of its products. SourceGear to deliver Linux and opers with a set of open source tools In addition, the companies have UNIX clients for its Vault source code for building .NET applications that run entered into a development partnership management application late in 2003. on Windows or any Mono-supported under which Ximian will provide SourceGear Vault is a version control platform, including Linux and UNIX. custom Mono development to enable system designed to be a compelling Mono incorporates key .NET- delivery of SourceGear products later alternative to Microsoft Visual Source- compliant components, including a C# this year. As a result, SourceGear will Safe. Built entirely on the Microsoft compiler, a Common Language offer both UNIX and Linux clients for .NET Framework, Vault provides a Runtime just-in-time compiler and a its SourceGear Vault source code Windows client and uses SQL Server growing set of class libraries. More management tool, enabling broader use 2000 for all repository storage. Using than 150 developers around the world of its solutions in mixed-platform Mono technology and custom develop- currently contribute to the Mono development organizations. ment from Ximian, SourceGear will Project. offer Linux and UNIX clients for Vault The new code includes work on class For more information, see http:// for cross-platform development envi- libraries, enabling Mono to be compat- www.ximian.com/about_us/ ronments. ible with .NET libraries which Ximian press_center/press_releases/ will develop under the X11 open index.html?pr=sourcegear

DeveloperNet: Join, Design, Build and Deploy

Got problems to solve with your develop with Novell and open source Membership in Novell DeveloperNet programming skills? Want new technologies. DeveloperNet provides a provides access to Novell products and customers for your enterprise network wealth of tools, support, training and solutions, developer tools, technical solution or service? You can bring in face-to-face engineering resources to resources, and engineering support. new business and solve those nasty help any type of developer bring Our goal is to help you deliver applica- technical problems with Novell. projects to completion or quickly get tions and services that leverage the DeveloperNet’s mission is to empower up to speed with Novell development. Novell Nsure, Nterprise, exteNd, and software and hardware developers who Ximian solution sets via eDirectory,

http://www.novell.com/appnotes October 2003 136 Code Break

the NetWare platform, DirXML, Depending on the subscription level Professional with NSEDL Standard NetMail, iFolder, iChain and other you choose, DeveloperNet program Edition individual Novell products. deliverables include: • 2 server x 5 user license Why support just one vendor’s plat- • Novell Software Evaluation and • No NDK Support Incidents form when you can easily support them Development Library (NSEDL) all? Cast your development net wider on CD ROM • US $249 with Novell DeveloperNet and haul in • Novell Developer Kit (NDK) Professional with NSEDL Expanded the benefits. DeveloperNet member- (Online and CD ROM) Edition ship provides access to Novell prod- ucts, tools, resources, training, educa- • Novell AppNotes • 2 server x 100 user license tion and engineering support you need • DeveloperNet University • Includes 2 NDK Support Incidents to be successful with development to • US $395 Novell technologies, in nearly every • YES, Tested and Approved programming language, and on any Certification Get the Novell products, tools, docu- leading platform, including Red Hat • Novell Developer Kit Support mentation and support you need today. and SuSe Linux, NetWare, Solaris, Incidents Join for free, or dive into a Profes- AIX and Windows NT/2000. sional membership to get everything • Developer Support Forums you need delivered to your door, Four levels of DeveloperNet member- • DeveloperNet Connections including two paid support incidents ship provide any individual eNewsletter (All) and hard-copy versions of the Novell programmer, developer team or entire Developer Kit, the Novell Software company with “good-better-best” Best Deal for the World’s Busiest Evaluation Library, Novell AppNotes access to Novell’s products, standards- Developer? and more! Becoming a member is based interfaces, development frame- Choose a DeveloperNet Professional simple too. Just visit http://devel- works, and engineering support: membership, with your choice of either oper.novell.com and click on the • Online (Free) the Standard or Expanded Edition of “Subscribe” link on the right side of the Novell Software Evaluation and the page. Start building better applica- • Professional ($395) Development Library (NSEDL). The tions, on any leading platform, with • Advantage (contract) NSEDL provides test and development any popular programming language or versions of all Novell’s major products • Premier (contract) tool, with Novell. on handy CD ROM:

Novell Development Success Stories

ISV/IHV/CSI Developer Enterprise/Corporate University of Kentucky Makes Does your company have a Novell- Developers NetMail Even Better based product, solution or service to Does your company employ program- University of Kentucky developers sell? Add your company’s name to the mers who develop network solutions or designed and developed a solution that growing list of Novell development customize Novell software to make it adds calendar and schedule subscrip- customer success stories! Nothing even better? Are any of them coding tion service to Novell NetMail, beats a satisfied customer story for geniuses whose work is stellar and connecting 39,000 students with opening doors with new Novell worthy of greater recognition? Submit customized information about campus- customers and then closing real busi- a Novell development success story related activities from any browser. ness. Submit your Novell develop- online: http://developer.novell.com/ For the full story, see http://devel- ment customer success stories online: success/submit.html oper.novell.com/success/kentuck- http://developer.novell.com/success/ yuniv.html submit.html

http://www.novell.com/appnotes October 2003 137 Code Break

The Future is Bright for Lufthansa Flight Training airline save an estimated $1 million or Future Gate Group Slims and Trims with Novell more per year. Catch their vision at http://www.novell.com/news/press/ DeTroubler for eDirectory and NDS “We started with a brief sketch of an archive/2003/09/pr03064.html from the future gate group is the only idea and were amazed at what we available object-oriented backup and could create with Novell technology.” To view all of Novell’s Developer restore solution for eDirectory and As a company that many of the world’s Success Stories, visit http://devel- earlier versions of the Novell directory leading airlines rely on for training oper.novell.com/success product. Read how the Swedish services in an industry that is looking National Police Board is using the to cut costs, Lufthansa Flight Training For more Novell development infor- future gate product to reduce risk of (LFT) needed to increase cockpit effi- mation, training, tools and engineering directory data loss and lower support ciency while saving money. With resources, visit http://devel- overhead for its 32,000-user network. Novell technology and a strong partner oper.novell.com To read up on it, go to http://devel- relationship, LFT created a mobile oper.novell.com/success/future- training and flight information solution gate.html that will help at least one leading

http://www.novell.com/appnotes October 2003 138 Viewpoints

Ramblings

Open Source, Freeware, GPL...Wow!! What Does It All Mean?

Richard Smith of productivity applications during those demands for quality software at an afford- Editor-in-Chief early days of the personal computer era. I able price. Novell AppNotes remember seeing VisiCalc for the first Many independent software developers [email protected] time in May of 1979 the West Coast discovered that by building good software Computer Faire in San Francisco (on an and giving users access to it for evalua- Last time I rambled about the origins of Apple if I remember correctly). VisiCalc tion in their environment, people would Open Source and freeware, but I really was later made available on other early actually pay for it if it was priced reason- didn’t get into how it affects the software computers and eventually on the IBM PC. ably. Many products today have their industry as a whole. This is a question In those early days it was used as a busi- roots in early shareware and have grown that I hear asked whenever a commercial ness management tool. Businesses every- because they filled a need at a reasonable software company talks about Open where were buying personal computers cost. Sources or anything that seems to deal just to run VisiCalc. with related topics. Open Source takes this concept one step Along the same vein, WordStar spawned further by allowing access to the source Open Source would not seem to be a good the revolution of word processing. Using code and by encouraging improvements fit for a company that makes its living a personal computer and WordStar, users in the code by users. Instead of a selling software to consumers. At its core could be much more productive than company having finite resources assigned it was devised to combat that exact thing! those with the most advance typewriter. to a piece of software, under the Open So why are so many commercial compa- Here again, users bought the computer Source concept they gain benefits from nies seeming to jump on the Open Source that allowed them to use this highly everyone who contributes. bandwagon? sought-after software package. Both of these packages (along with their succes- Well the answer lies with customers. I sors--Lotus 123 and WordPerfect) were In Today’s Economy know sometimes we feel we know what is high priced at the time, but they still saw In today’s tight economic atmosphere best for them, but when it gets right down tremendous growth because they solved getting resources for nothing (or close to to it, the customer usually knows what he business problems and were cost effective it) is very attractive to many businesses. or she wants and today is much more because of the productivity boost they More and more business is viewing most inclined to demand just that. The mid- gave software as a piece of infrastructure-- eighties to early nineties brought about more of a commodity item that is taken the software industry boom! So What Does That Have To Do for granted. The exceptions would be As users found real value in the use of With Anything? high-level applications that are used to personal computers and a need for soft- run the business, but applications that Software demand is generated by the ware, software vendors found ways to don’t perform mission critical purposes-- needs of the customer. While that may deliver to those needs. In reality, not they just fill a need. sound simple, far too many software much has changed--we might be better companies today have completely lost This is where Open Source and to some connected with access to much more data, sight of that principal. By the late degree freeware fits the bill. Software can but the basic needs remain the same. eighties/early nineties, prices for software be more easily maintained with the source Computers are designed to make many that solved problems for users were and can even be extended to better fit the repetitious, mundane tasks easier and getting too high to be practical for many. individual requirements of the business. faster to complete. All of this helped spur the shareware Value and results are where it’s at today Early on spreadsheets and word proces- industry and as an offshoot, freeware/ and Open Source provides both. sors were all the rage. VisiCalc and Open Source, thus helping to fill the ‘Till next time, I’ll just keep rambling.... WordStar ruled the industry as far as sales

http://www.novell.com/appnotes October 2003 139 Viewpoints

Lightweight Access

Top Twenty Rules for Surviving a Horror Movie 13. If you are home alone and you hear a noise coming from It’s October, and most of the world will soon celebrate another room or outside your window, don’t assume it’s just Halloween, Day of the Dead, or some other fairly macabre the house settling or the wind. holiday. So in keeping with that theme, here are some helpful 14. Always check the back seat of your car. pieces of advice to follow in the unlikely event you find yourself in 15. Never announce openly that you’re not afraid, you don’t a horror movie. believe, or you’re fully prepared. You’re just asking for it. 1. When it seems that you’ve killed the monster, never check to 16. Never watch a horror movie while you’re in a horror movie. see if it’s really dead. 17. Never read a book of demon summoning aloud, even as a 2. Do not search the basement, especially when the power has joke. just gone out. 18. Always be nice to the shy, quiet, unpopular girl in school. 3. When you have the benefit of numbers, never pair off or go off alone. 19. Remember that campfire legends always come back to haunt you. 4. Never stand in, on, above, below, beside, or anywhere near a grave, tomb, crypt, mausoleum, or other resting place of the 20. If the locals advise you to stick to the road, stay off the dead. moors, and beware the full moon, take heed.

5. If you come across a town that looks deserted, it’s probably That Ever-Helpful Mr. Paper Clip for a reason. Take the hint and stay away. 6. If your car runs out of gas at night, do not go to the nearby deserted-looking house to phone for help. 7. Don’t open the closed door, especially if you hear scratching, heavy breathing, or any other strange noises from the other side. 8. When you land on a distant planet and find some alien objects that look like eggs, leave them alone. 9. When one of your spaceship’s crew finds a hideous parasite attached to his face (as a result of disobeying the previous rule), don’t let him back on the ship. The guy’s dead meat anyway. 10. Don’t explode atomic bombs in the Arctic, Pacific atolls, or deep beneath the ocean. These locations are thickly inhabited with survivors from the prehistoric past that will invariably be reanimated by the radiation. 11. Don’t explode atomic bombs in the desert, which are full of Disclaimer: Lightweight Access brings you humorous observations many insect species just waiting for their chance to mutate and refreshing diversions to give you a break from the daily grind into gigantic forms. Any opinions expressed do not reflect Novell’s official position on 12. If you must run screaming through the woods, dress appropriately. Jeans and sneakers always beat a flimsy nightgown and high heels.

http://www.novell.com/appnotes October 2003 140 Novell AppNotes All articles can be viewed in HTML format and downloaded in Adobe Acrobat (PDF), eBook, Palm, or Windows CE formats at http://www.novell.com/appnotes.

Novell AppNotes (formerly Novell / NetWare Application Notes)

Date Part Number Titles

Oct 03 Enabling Enterprise Linux with Novell Ximian Services Cluster-Enabling DHCP, DNS, and SLP Services in NetWare 6 Creating ZENworks Inventory Reports Using the Crystal Reports Designer Integrating Applications with the IP Address Management Framework How to Deploy Novell exteNd Director 4.1 Enterprise on Tomcat 4

Sep 03 464-000064-009S Taking Things Out of Context: Using LDAP Contextless Login in Your Network IP Address Management Framework: Managing Application IP Address/Port Configurations in NetWare 6.5 Running Novell BorderManager on Novell Cluster Services Novell’s XForms Strategy: Overcoming the Limitaions of Web Forms Finding Runtime Errors with the Novell exteNd Workbench Debugger

Aug 03 464-000064-008 What’s New in NetWare 6.5? Novell Server Consolidation Utility, Migration Wizard, or Volume Split/Move: Which Should I Use? Virtual IP Addresses in the NetWare 6.5 TCP/IP Stack Apache Manager: A Directory-Based Approach to Managing Apache Web Servers Overview of Novell Web and Application Services in NetWare 6.5 New Developer Features in Novell eDirectory 8.7.1

Jul 03 464-000064-007 Linux: The “Other” Operating System Managing Handheld Devices Using Novell ZENworks for Handhelds 5 A Tiered Structure for Governing and Managing Large-Scale Directories Getting Started with Novell exteNd Director 4.1 Enterprise Edition How to Build J2EE Applications Using Novell Technologies: Part 9

Jun 03 464-000064-006 Deploying Novell ZENworks for Desktops 4 in a Pure Microsoft Windows Environ- ment Using ZENworks for Server 3 Server Management Understanding the Novell SecretStore 3.2 APIs Error Processing in exteNd Composer: Simplifying Maintenance and Debugging

May 03 464-000064-005 An Introduction to Novell Nsure Secure Identity Management Sending Secure and Encrypted Messages with GroupWise 6.5 A Technical Overview of Novell SecretStore 3.2 How to Use Perl, Python, and PHP to Access eDirectory 8.7 via LDAP How to Write NetWare Loadable Modules (NLMs) as Dynamic Libraries

Apr 03 464-000064-004 Accessing Network Files with the Novell Native File Access Pack (NFAP) Creating and Enforcing an Internet Acceptable Use Policy Apache 2.0: All New and Engineered for the NetWare Environment Administering MySQL on NetWare Novell exteNd Directory Pluggable Security Realm for eDirectory/WebSphere

Mar 03 464-000064-003 What’s New in GroupWise 6.5 Using WebSpy Analyzer and WebSpy Live on Novell BorderManager Proxy Log Files How to BuildJ2EE Applications Using Novell Technologies How to Use Novell Nsure UDDI Command Beans in Building Web Service Enabled Applications Integrating Log4j and the Novell exteNd Application Server

http://www.novell.com/appnotes October 2003 141 Novell AppNotes

Date Part Number Titles

Feb 03 464-000064-002 IP Address Configurations and Usage for the NetWare 6.5 TCP/IP Protocol Stack NetWare 6 Trustee Rights: How They Work and What to Do When It All Goes Wrong Using Public-Domain Site Blocking Lists with Novell BorderManager Understanding and Using Persistent Search in Novell eDirectory An Asynchronous Transaction-Enabled J2EE Application: A Message Driven Bean Example

Jan 03 464-000064-001 A "Quick Start" Guide to Novell NetMail 3.1 Blocking Browser Ads with Novell BorderManager A Competitive Upgrade: LANDesk Management Suite to ZENworks for Desktops 4 Distributing the Mozilla 1.x Web Browser Using Novell ZENworks for Desktops How to Replicate User and Group Information Between exteNd Application Servers

Dec 02 464-000063-012 What’s New in Novell iFolder Professional Edition 2.0 Implementing a High Availability Web Access Solution with GroupWise 6 Enhancing TCP Performance Through the Large Window and SACK Options Convergence of Technology: Integrating CollabraSpace Collaboration Server with Novell exteNd Installing and Configuring NetWare AMP (NetWare 6, Apache, MySQL, and PHP/Perl) How to Build J2EE Application Using Novell Technologies, Part 7

Nov 02 464-000063-011 Novell Nterprise Branch Office: Remote Office Management Made Easy Understanding the Atlas Feature in ZENworks for Servers 3 Implementing Protocom’s SecureConsole in a Large Network How You Can Help Improve the Quality of Novell’s Software How to Build J2EE Applications Using Novell Technology: Part 6 How to Port an ANSI C/POSIX Application to NKS/LibC

Oct 02 464-000063-010 Getting the Most Out of the NetWare Server Consolidation Utility Troubleshooting Novell iChain 2.1 Authorization Issues How to Configure NIC Teacming Drivers Using INETCFG How to Configure and Customize the Discovery System in ZENworks for Servers 3 An Introduction to MySQL for NetWare Effectively Reading a DirXML Trace File

Sep 02 464-000063-009 Troubleshooting Novell iChain 2.1 Authentication Issues Managing Windows 2000 Group Policies with ZENworks for Desktops 3 How to Use the Alarm Management System of ZENworks for Servers 3 A Methodology for Troubleshooting DirXML Implementing a Utility for Searching Windows Executable Files on NetWare How to Build J2EE Applications Using Novell Technologies: Part 5

Aug 02 464-000063-008 DirXML and the Reporting & Notification Service (RNS) How to Perform a Health Check of Novell Account Managment 2.1 for Windows NT Monitoring Proxy Information on Novell BorderManager Advanced Features of DirXML, Part 2: Channel Write-Back How to Build J2EE Applications Using Novell Technologies: Part 4 How to Write Start-up Code for NLMs

Jul 02 464-000063-007 (NSS) Performance Monitoring and Tuning Tuning the NetWare 6 TCP/IP Stack via SET Parameters How to Build J2EE Applications Using Novell Technologies: Part 2 Advanced Features of DirXML, Part 1: Queries Leveraging the System Management BIOS Information in NetWare-Based Applications

http://www.novell.com/appnotes October 2003 142 Novell AppNotes

Date Part Number Titles

Jun 02 464-000063-006 Technical Considerations for Choosing the Best Directory Authenticating Users to UNIX Systems with Novell eDirectory and LDAP Accessing Data on Multiple eDirectory Trees with a Single Login Using Novell NetStorage Novell BorderManager Filter Configuration through iManager Update on the Centralis AXE Utility: What’s New in Feature Release 1? How to Build J2EE Applications Using Novell Technologies: Part 2

May 02 464-000063-005 Understanding and Troubleshooting Novell's Security Infrastructure Using Novell SecureLogin to Enable Web Applications for Single Sign-on Interoperability of Novell BorderManager with Other Novell Services How to Build a Personalized, Secure Web Portal Using eDirectory, iChain, and Cor- porate Yahoo! Enterprise Portal How to Build J2EE Applications Using Novell Technologies: Part 1

Apr 02 464-000063-004 A Technical Overview of Novell TCP/IP in NetWare 6 Managing Browser Configuration for Novell BorderManager Proxy Clients Upgrading from iChain 1.5 to 2.0 One eGovernment: Bringing Governments to the Net How to Manage and Use Dynamic Groups in Novell eDirectory

Mar 02 464-000063-003 Novell iChain 2.0 Installation and Configuration Quick Start What's New in Novell BorderManager 3.7? Link Level Load Balancing and Fault Tolerance in NetWare 6 Creating Applets for Novell GroupWise with Advansys Formativ How to Uninstall Novell Account Management 2.1 for Windows NT How to Extend the NetWare Scripting Environment by Creating UCX Components

Feb 02 464-000063-002 ZENworks for Desktops Preboot Services: A Technical Overview Blocking Virus Requests in Novell BorderManager’s HTTP Accelerator Building eDirectory-Enabled Applications Using Delphi: Low-Level How to Use the Security Features in Novell Portal Services How to Audit DirXML Events Using Stylesheets, Java, and JDBC

Jan 02 464-000063-001 Cluster-Enabling a ZENworks for Servers 2 Development Understanding Novell BorderManager’s HTTP Proxy Logs How to Implement Complex Business Rules Using DirXML Stylesheets and Java How to Write a ConsoleOne NDS Management Snap-In Using the eCommerce Bean for LDAP How to Manage Internet Directories Using Beans for Novell Services

Dec 01 464-000062-012 Ensuring High Performance and Availability from NetWare 4.x and 5.x Servers Building eDirectory-Enabled Applications Using Delphi: ActiveX How to Use the Novell Kernel Services Programming Environment and Standard Run-Time Library: NetWare 6 Update How to Access Remote ActiveX Controls from NetWare How to Define a Corporate Naming Policy Using DirXML Stylesheets How to Certify an NLM Application on NetWare 6

Nov 01 464-000062-011 Should I Use a Directory, a Database, or Both? Preparing a Disaster Recovery Plan for NetWare and eDirectory Building eDirectory-Enabled Applications using Delphi: Overview How to Use the eCommerce Beans for LDAP in Servlets, Java Server Pages, and Enterprise JavaBeans How to Install and Configure NetWare Enterprise Web Server or Apache Web Server with Tomcat

http://www.novell.com/appnotes October 2003 143 Novell AppNotes

Date Part Number Titles

Oct 01 464-000062-010 What’s New in NetWare 6? A Features Overview Upgrading or Migrating to NetWare 6 iFolder: Data Accessibility, Where and When You Need It Novell iPrint: A Best-of-Breed Print Solution for Business High Availability Networking with NetWare 6: NSS 3.0 and Cluster Services 1.6 Multiprocessing Support in NetWare 6

Sep 01 464-000062-009 Troubleshooting the Novell BorderManager 3.6 VPN Client Moving Novell’s Legacy Print Services Between Volumes and Servers Implementing SecuGen’s Fingerprint Recognition Technology with NMAS 2.0 Ten Guidelines for Designing Effective Schema Extensions How to Install ZENworks for Desktops 3 How to Use eDirectory-Based Home Directories with the Apache Web Server How to Access NDS from HTML or ASP, Part 6 (online article)

Aug 01 464-000062-008 Getting to Know LDAP and Directories: What to Consider Enhancing ZENworks for Desktops 3 Imaging with ENGL Zim How to Showcase Your Web Content Using Novell Portal Services How to Use Novell Directory Control (NWDir), Part 3 How to Use Perl, Python, and PHP to Access NDS eDirectory 8.5 via LDAP How to Access NDS from HTML or ASP, Part 5 (online article)

Jul 01 464-000062-007 An Overview of Biometrics Support in NetWare Through NMAS Quick Guide to Installing and Configuring Novell iChain 1.5 Community Services Printing from a on an IP-Only NetWare Network with NDPS How to Integrate NDS eDirectory with Your Web Application Using the eCommerce Bean for LDAP How to Access NDS from HTML or ASP, Part 4 (online article)

Jun 01 464-000062-006 Configuring a Fault-Tolerant Messaging System Using GroupWise 5.5 and Novell Cluster Services Quick Guide to Installing and Configuring Novell iChain 1.5 Authorization Services How to Use the ODBC Driver with XML How to Clear a User’s Connection Using a Perl Script Centralis Contex: The ConsoleOne Extensions for Thin Client Server Solutions (online article)

May 01 464-000062-005 Performing an Unattended Installation of ZENworks for Desktops 3 on Remote Serv- ers Centralis AXE: The Power Utility for ZENworks for Desktops Health Check Procedures for NDS eDirectory on Supported Platforms Quick Guide to Installing and Configuring Novell ICS and iChain 1.5 How to Use Novell Directory Control (NWDir), Part 2 How to Access NDS from HTML or ASP, Part 3 How to Integrate NDS eDirectory, JDBC, and EJB (online article)

Apr 01 464-000062-004 How to Maintain Caching in eDirectory 8 and eDirectory 8.5 Creating the “Digital Airlines” Novell Technology Demo Custom Development with Novell iChain 1.5 Process Foundations for Successful Solution Deployment How to Use the ODBC Driver with NDS, Part 3: Understanding XML How to Access NDS from HTML or ASP, Part 2

http://www.novell.com/appnotes October 2003 144 Novell AppNotes

Date Part Number Titles

Mar 01 464-000062-003 How to Monitor NetWare Servers Using a Wireless Device Policy-Based Management of Mobile Phones How to Use Novell Directory Controls (NWDir), Part 1 How to Write a Simple DirXML Stylesheet Quick Guide to Installing and Configuring Novell iChain 1.5 and ICS (online article) How to Access NDS from HTML or ASP, Part 1

Feb 01 464-000062-002 Understanding Novell’s iChain: A Technical Overview How to Use NDS eDirectory to Secure Apache Web Server for NetWare How to Program to NDS eDirectory on NetWare Using Perl How to Analyze NDS.DTD to Construct XDS Documents for DirXML How to Build an NDS-Enabled Application Using Visual Basic and the Novell Con- trols for ActiveX, Part 2

Jan 01 464-000062-001 Novell OnDemand Services: Architecture and Customization How to Optimize Novell Licensing Services How to Use a Perl Script to Reboot a NetWare Server Using a UPS How to Write a Simple NLM Using Novell Script for NetWare

Dec 00 464-000060-012 How to Manage Active Directory with Novell’s eDirectory How to Use MVC Beans for eBusiness to Administer eDirectory Using Your Browser How to Use the ODBC Driver with NDS, Part 2 How to Use the GroupWise Filter and Query How to Use GroupWise Tokens

Nov 00 464-000060-011 NDS eDirectory 8.5: A Detailed Overview Personalizing and Customizing Web Content Using NDS eDirectory at CNN New Features of the Novell Kernel Services Programming Environment for NetWare 6 Programming How to Configure WebSphere, Oracle, NetWare Enterprise Web Server, and eGuide on a NetWare Server How to Use the ODBC Driver with NDS: Part 1 Overview of the Universal Component System (UCS)

Oct 00 464-000060-010 Using NDS Corporate Edition to Manage Windows NT and Windows 2000 Using the Novell Import Convert Export Utility NDS Tree Walking Issues and Recommendations How to Update Applications, ZENworks Application Objects, and snAppShots Resid- ing on Multiple Servers Accessing Novell Services from Perl on NetWare KLib: A Kernel Runtime Library GroupWise Object API in Visual Basic and C++

Sep 00 464-000060-009 Using Novell Net Publisher to Publish, Share, and Store Files on the Web Protecting Your Network from Hackers with Advanced BorderManger Packet Filter- ing Migrating from NT to NetWare with the NetWare Migrating Wizard How to Configure and Optimize eDirectory LDAP Servers Time Functionality in the Standard C Library How to Add C3PO Custom Buttons with GroupWise Object APIs in Visual Basic

Aug 00 464-000060-008 Multimedia Streaming with NetWare 5.1 Implementing Strong Passwords in an NDS Environment Troubleshooting BorderManager Licensing Issues Choosing a Scripting Language on NetWare How to Develop Web Applications for WebSphere Using MVC Beans NetWare Installation Guide for Non-NetWare Users Novell Controls for ActiveX and Microsoft Excel: Migrating Directory Entried Between NDS and LDAP Directoried Using Spreadsheets

http://www.novell.com/appnotes October 2003 145 Novell AppNotes

Date Part Number Titles

Jul 00 464-000060-007 An Introduction to Novell’s DirXML What It Really Means to be Integrated with NDS eDirectory System Requirements for NDS eDirectory Novell eGuide: One-Click Connection to Directory-Based Information How to Supercharge LDAP Searches with NDS eDirectory Indexes How to Use Metrowerks CodeWarrior Building an NDS-Enabled Application Using Visual Basic and Novell Controls for Active X, Part 1

June 00 464-000060-006 Implementing an Enterprise-Wide White Pages/Yellow Pages Lookup Service with NDS eDirectory Troubleshooting TCP/IP Communication Issues in the NetWare 5 Environment NetWare Security: Closing the Doors to Hackers

May 00 464-000060-005 Standardizing Network Server Configurations with Server Policies in ZENworks for Servers NDS eDirectory Design, Implementation, and Maintenance Guidelines Enabling Roaming Lotus Notes Users with ZENworks for Desktops Configuring BorderManager Authentication Services for Use with ActivCard Tokens

Apr 00 464-000060-004 An Introduction to NDS Corporate Edition Understanding and Configuring SLP Directory Agents (DAs) and Scopes Troubleshooting and Diagnosing NetWare 5.1 Server Problems Through the Net- Ware Portal Utility Implementing Software Metering with ZENworks

Mar 00 464-000060-003 Providing Web Services on the Internet: Why I Chose NetWare 5 Over Windows NT and Linux An Introduction to ZENworks for Servers Novell Internet Messaging Service (NIMS) Configuration Tips What’s New in ManageWise 2.7 Protecting NDS from Malicious Internal Attacks with NetVision’s DirectoryAlert

Feb 00 464-000060-002 Novell’s Support for Windows NT, Windows 2000, and Active Directory Understanding Novell’s Single Sign-On How to Set Up and Use Remote Control with ZENworks 1.1 and 2.0 A Strategy for Migrating to Novell Distributed Print Services in a Pure IP Environ- ment

Jan 00 464-000060-001 What’s New in NetWare 5.1: The Complete Solution for Web-Based Networking Rolling Out NetWare 5.1 with the NetWare Deployment Manager Upgrading Novell Client Software Across the Network Using ACU.EXE An Overview of NetWare 5.1’s Management Portal Utility Taking Advantage of NetWare’s Public Key Infrastructure with Novell Certificate Server 2.0 An Introduction to WebSphere: The Next-Generation Web Application Server

Dec 99 464-000057-012 The Novell Controls for ActiveX and Visual Basic: Writing NDS Field Values Features of the Novell Kernel Services Programming Environment for NLMs: Part Four WebSphere Components Introduction to NetWare 5 Memory Enhancements Novell, Java, and Voyager Novell to Ship NetWare 5.1 Beta Novell Year 2000 Testing

http://www.novell.com/appnotes October 2003 146 Novell AppNotes

Date Part Number Titles

Nov 99 464-000057-011 Configuring Your Client Application for LDAP Secure Binds ASN.1, OIDs, and NDS—The Common Fit Features of the Novell Kernel Services Programming Environment for NLMs: Part Three Novell SSL for Java SecretStore Single Sign-on Programming on NetWare Made Easy with Perl Scripting Developer Tools: Contest Winners Use NDS and NetWare to Create Prize- Winning Apps

Oct 99 464-000057-010 The Novell Controls for ActiveX and Visual Basic: Searching NDS Field Values Using JNDI and Novell’s NJCL to Access NDS Using the NetWare Deployment Kit to Upgrade to NetWare 5 Features of the Novell Kernel Services Programming Environment for NLMs: Part Tw o Features of the Novell Kernel Services Programming Environment for NLMs: Part Tw o Overview of New Features in BorderManager Enterprise Edition 3.5 Novell Developer Workshop Tour ‘99

Sep 99 464-000057-009 The Novell Controls for ActiveX and Visual Basic: Reading Field Values NDS Glossary The Future of Application Development on NetWare with NLMs SCHMAP: NDS Schema Extension and LDAP-to-NDS Mapping Utility Features of the Novell Kernel Services Programming Environment for NLMs: Part One SCHMIG: Schema Migration Utility Developer Tools: Credentia ViaNet/NDS

Aug 99 464-000057-008 White Pages Application NDS Programming Tutorial: Directory Concepts White Pages Application NDS Programming Tutorial: The Demo Application Building Web Database Applications Using Novell Script for NetWare The Business Case for Directory-Enabling Your Application with NDS Benefits of NDS

July 99 464-000057-007 Designing NDS Schema Extensions The Novell Controls for ActiveX and Visual Basic: Logging In Extending the NDS Schema with DSAPIs NDS 8 Update Novell Delivers High-Availability Solution for NetWare 5

June 99 464-000057-006 Programming with the Novell Controls for Active X and Visual Basic: Getting Started Configuring JavaBeans for Novell Services Schema Enhancements for NDS 8 Runtime Programming in Java; A Technology Primer Using BulletProof’s JDesignerPro 3.0 to Build Java Applications on NetWare 5

May 99 464-000057-005 Introduction to NDS for Developers Applications for NetWare 5, Part 4 Overview of NDS for NT 2.0 BorderManager Authentication Services 3 EPC C/C++ Enterprise Edition for Novell NetWare Novell SuperLab NDS for Solaris: An Overview Active Server Pages (ASP) on NetWare

http://www.novell.com/appnotes October 2003 147 Novell AppNotes

Date Part Number Titles

Apr 99 464-000057-004 Understanding and Using Novell’s Universal Component System The Novell Developer Kit NDS for NT Q & A Applications for NetWare 5, Part 3 Using Novell’s Year 2000 Information Ferret to Determine Your Y2K Status Developer News Minimum Patch List

Mar 99 464-000057-003 Introduction to NDS v8 DeveloperNet University’s NDS 102 Using C and LDAP Stick a Fork in it: 1998 Novell Developer Workshop Tour Series Well Done Applications for NetWare 5, Part 2 The Winners’ Circle Novell Java Q & A

Feb 99 464-000057-002 The Winners’ Circle NDS102: Authenticating to NDS Using C (NDAP) APIs Why Develop to NetWare 5? Part 2 Whats New in NetWare 4.2? NetWare 5 Tested and Approved Applications

Jan 99 464-000057-001 Developing NLMs with Metrowerks CodeWarrior NetWare 5 Overview, Part 2 Writing Java Applications on NetWare Using Legacy NLMs Why Develop to NetWare 5? Cisco and Novell to Provide NDS with Interoperability with Cisco Routers and Switches

Dec 98 464-000055-012 CodeWarrior’s Architectural Advantage DeveloperNet University’s NDS101 Using C and LDAP Novell’s Controlled Cryptographic Services Developing Target Service Agents Using CCSCL AnyInfo Example 7: Using JDBC to Access an Oracle8 Database

Nov 98 464-000055-011 Configuring LDAP Services for NDS DeveloperNet University’s NDS101 Using C Using Java Naming and Directory Interface (JNDI) to Develop NDS-Enabled Applica- tions

Oct 98 464-000054-010 Enhancements to Novell Directory Services in NetWare 5 Using Z.E.N.works to Distribute and Manage Applications on a Network A Z.E.N.works-Friendly Location Independence Strategy for NetWare Networks Assessing the Business and Technical Aspects of Public Key Infrastructure Deploy- ment ManageWise 2.6: New Features and Enhancements

Sep 98 464-000054-009 What’s New in the NetWare 5 Operating System? Installing NetWare 5: Tips and Tricks Migrating to Pure IP with NetWare 5 Compatibility Mode Installation and Configuration Printing in NetWare 5 with NDPS 2.0 New Security Features in NetWare 5

http://www.novell.com/appnotes October 2003 148 Novell AppNotes

Date Part Number Titles

Aug 98 464-000054-008 Quoi de Neuf: What’s New in NetWare 5? Troubleshooting Synchronization with NDS Manager Implementing NDS-Enabled Solutions at Clemson University, Part 2 GroupWise 5.2 Performance Tuning and Capacity Planning Collecting and Interpreting NetWare 3.x and 4.x Server Statistics with STAT.NLM Break the Web Server Speed Limit with a Web Server Accelerator Using BorderManager to Improve the Quality of Service for International Access to WWW.NOVELL.COM

Jul 98 464-000054-007 Implementing NDS-Enabled Solutions at Clemson University Using NDS Manager’s Graphical Schema Manager Tool in NetWare 4.11 ManageWise 2.5 Configuration and Usage Tips Charlotte: An Automated Tool for Measuring Internet Response Time

Jun 98 464-000054-006 An Introduction to NetWare for Small Business 4.11 Using NDS Manager for Partition and Replica Administration Using Z.E.N.works to Manage Users’ Desktops Novell GroupWise Performance Management on Compaq Servers

May 98 464-000054-005 Novonyx Product Overview: Netscape Enterprise, FastTrack, and Messaging Servers for NetWare An Introduction to Z.E.N.works: Zero Effort Networking for Users Using DSREPAIR to Maintain the Novell Directory Services Database SQL Integrator: A Data Request Broker for Heterogeneous Data Access

Apr 98 464-000054-004 An Introduction to Novell Distributed Print Services (NDPS) Easing TCP/IP Network Management with Novell’s DNS/DHCP Services Using the Graphical SYSCON Utility in NetWare 3.2 Using the Novell Internet Access Server (NIAS) and a Modem to Connect Your Net- Ware Server to an ISP

Mar 98 464-000054-003 Managing Mixed intraNetWare and Windows NT Networks with NDS for NT Maintaining IPX Compatibility During a Migration to TCP/IP on a NetWare Network Using the Novell Upgrade Wizard Network Address Translator (NAT) Theory and Troubleshooting Supporting PCI Hot Plug Technology in the Novell Architecture DeveloperNet: The Source of Opportunity for Application Developers

Feb 98 464-000054-002 What’s New in NetWare 3.2 Accessing the Novell Support Connection Web Forums on the Internet Using the SAPMON Utility to Monitor SAP Traffic and Troubleshoot Network Prob- lems Novell SuperLab Hosts the SuperLab Challenge Networking Case Study: The Novell Connecting Points Network at COMDEX/Fall ‘97 BorderManager FastCache: Single Proxy Server Supports 67,000-Seat Network for Utah Schools

Jan 98 464-000054-001 The New Face of Networking Consumer Gas Company, Ltd. Migration to IntranetWare from NetWare 3.12: A Case Study A Practical Guide to Using Novell Application Launcher (NAL) 2.01 Improving Novell BorderManager Scalability with Intelligent Server Adapters Improving Sun Web Server Performance and Scalability with BorderManager Web Server Acceleration

http://www.novell.com/appnotes October 2003 149 Novell AppNotes

Date Part Number Titles

Nov/ 464-000052-011 Achieving Class C2 Security in a Network EnvironmentNetwork Security for the 21st Dec 97 Century: Concepts and Issues Devising an Information Security Policy: Environment, Risk, and Assurance Overview of the NetWare Enhanced Security Architecture and Configuration Implementing Class C2 Security with NetWare 4.11 Protecting Your Network Against Known Security Threats Security Issues for International Commerce

Oct 97 464-000052-010 A Quick Guide to Web Server Acceleration Maintaining a Healthy NDS Tree: Part 2 Troubleshooting Server Problems Using the ABEND.LOG File and Memory Images (Core Dumps) Electronic Commerce: The Quest for a Global, Secure Infrastructure

Sep 97 464-000052-009 Three Ways to Deliver Cached Performance to Your Intranet and Internet Users Novell Storage Services (NSS): Pushing IntranetWare to New Heights Setting Up a “Change Password Administrator” in NetWare 4 Accessing the Internet with Eicon’s SCOM for IntranetWare Kit

Aug 97 464-000052-008 Web Server Acceleration with Novell’s BorderManager: A Case Study of WWW.NOV- ELL.COM Learning and Applying the Rules of NDS Security Maintaining a Healthy NDS Tree: Part 1 Using Novell Application Launcher 2.0 and snAppShot for Application DeliveryJul 97 Novell’s Project 2000: Meeting the Challenge of Century Compliance Installing the “First” NetWare/IP Server An Overview of Novell’s GroupWise Document Management Strategy Novell’s Class C2 Level Security Evaluation “For a Network”

Jun 97 464-000052-006 Controlling Access to Open Systems with IntranetWare BorderManager An Introduction to Novell Replication Services Implementing Novell’s NT Workstation Manager Migrating to GroupWise from Message Handling Services From Paper to Electrons: Initiating Safer Electronic Commerce

May 97 464-000052-005 Overview of Novell’s IntranetWare Client for Windows NT Installing the IntranetWare Client for Windows NT Configuring the IntranetWare Client for Windows NT Accessing IntranetWare Resources Using the NWGINA Logon Interface and the Net- Ware Provider Setting Up Network Printing with IntranetWare Client for Windows NT Workstation

Apr 97 464-000052-004 Overview of Novell / Windows NT Integration Products Installing the NWAdmin Plug-Ins for Windows NT Workstations and Servers Integrating Windows NT Users and Groups into IntranetWare Using Novell Adminis- trator for Windows NT Managing NT and NDS Account Information Using the Novell Workstation Manager Using the Novell Application Launcher with Windows NT Migrating to IntranetWare from LAN Server, LAN Manager, or NT Server

Mar 97 464-000052-003 Optimizing IntranetWare 1 and 2 Server Memory IntranetWare Server Automated Abend Recovery NetWare Over TCP/IP: Integrating NetWare Services into the TCP/IP Environment GroupWise 5 Architecture Overview

http://www.novell.com/appnotes October 2003 150 Novell AppNotes

Date Part Number Titles

Feb 97 464-000052-002 Effectively Networking Windows NT with Novell’s IntranetWare Using the Directory Services Trace (DSTRACE) Screen Disconnecting NetWare Clients that Have Automatic Reconnection Enabled The Role of the Physical Network in Network Installation and Optimization

Jan 97 464-000052-001 Design Rules for NDS Replica Placement ManageWise 2.1 Configuration and Optimization Tips Branch Office Deployment, Part 2: An Imaginary Branch Installation Project Managing the Physical Network: A Beginner’s Guide

Dec 96 164-000050-012 Architecting a Full-Service Intranet with Novell’s IntranetWare Connecting to the Internet from a Novell NetworkNovell AppNotes (cont.) How to Select WAN Hardware for Your Novell Product Capacity Planning for the IntranetWare IPX/IP Gateway

Nov 96 164-000050-011 Overview of NetWare Client 32 for Installing NetWare Client 32 for Windows 95 Upgrading Windows 95 Workstations with Automatic Client Update (ACU) Configuring NetWare Client 32 for Windows 95 Accessing Network Resources with the GUI Login Utility and the NetWare Provider Using the Novell Application Launcher (NAL) with Client 32 for Windows 95 Setting Up Network Printing with Client 32 for Windows 95 Troubleshooting and Optimizing NetWare Client 32 for Windows 95

Oct 96 164-000050-010 What’s New in NetWare 4.11 Migrating to NetWare 4.11 Using the Across-the-Wire Method Backing Up and Restoring Novell Directory Services in NetWare 4.11 Server Maintenance: Maintaining NDS Information for a NetWare 4.11 Server During a Brief Shutdown

Sep 96 164-000050-009 Exploring the NetWare Web Server, Part 3: A Complete Innerweb Solution An Introduction to Novell’s IntranetWare IPX/IP Gateway Branch Office Deployment, Part 1: A Product Development Approach

Aug 96 164-000050-008 NetWare/IP 2.2 Implementation and Troubleshooting Guidelines Network Security: Determining Your Risk Index Choosing a LAN-based Imaging System for the Small Office Environment Lessons Learned While Upgrading to NetWare 4.1

Jul 96 164-000050-007 Extending ManageWise for the Challenges of the Enterprise Licensing and Serialization in NetWare 4.1 A Study of Novell Directory Services Performance and Benefits Shaping the Infrastructure for Information Security in the 21st Century

Jun 96 164-000050-006 NetWare on One CPU Outperforms Windows NT Server on Four CPUs Managing Novell Directory Services Traffic Across a WAN: Part 1 NetWare Connect Services: Your Pathway to the Global Business Village Business Process Re-engineering: A Turning Point in Novell’s Imaging Studies

May 96 164-000050-005 NetWare Client 32 for DOS/Windows: Overview of Architecture and Features Installing NetWare Client 32 for DOS/Windows Upgrading Network Client Software with Automatic Client Update (ACU) Using the Client 32 GUI Login Utility and the NetWare Application Manager (NAM) Using Novell’s NetWare User Tools (NWUSER.EXE) for Client 32 Workstations Setting NET.CFG Parameters with the NWSETUP Utility and Accessing Online Help

http://www.novell.com/appnotes October 2003 151 Novell AppNotes

Date Part Number Titles

Apr 96 164-000050-004 Ten Proven Techniques to Increase NDS Performance and Reliability Universal Guidelines for NDS Tree Design Overview of NetWare Link/ATM Technology GroupWise Remote for the Road Warrior Auditing NDS Objects with AuditWare for NDS NDS Expert: Using NDS Checksumming to Eliminate Packet Corruption Problems

Mar 96 164-000050-003 Roaming a NetWare Network with NetWare Mobile IPX Interconnecting NetWare Networks with ISDN Exploring the NetWare Web Server: Part 2 New Bottlenecks in LAN-based Imaging Systems Large NetWare Networks: Results of Compaq’s 1000-User Server Benchmark Tests Understanding SCANTREE.EXE’s Statistics Net2000: Enhancing the NetWare Platform

Feb 96 164-000050-002 Exploring the NetWare Web Server Inside the NetWare Server’s Packet Burst Statistics Screen Installing and Configuring GroupWise Remote Using DS Standard to Migrate Networks to NetWare 4.1Novell AppNotes (cont.)

Jan 96 164-000050-001 Applying X.500 Naming Conventions to NDS Basic GroupWise Concepts for Support Professionals Using Packet Size Distributions to Uncover Hidden Network Utilization Bottlenecks Performance Analysis: Isolating the Real Bottleneck in a System Net2000: Interface and Implementation

Dec 95 164-000047-012 Global Network Services: Novell’s Strategy for Enabling a Smart Global Network A Look into the Future: Distributed Services and Novell’s Advanced File System An Inside Look at SPX Communications between RPRINTER/NPRINTER and the Net- Ware Print Server LAN-based Imaging Revisited

Nov 95 164-000047-011 NetWare Link Services Protocol: An Advanced Theory of Operations Guidelines for Implementing NetWare/IP Tuning the Server Memory Calculation WorksheetOct 95 Using TRACK and Other Console Utilities in a Mixed NetWare Environment MHS Services’ Role in Novell’s Messaging Strategy Using AppWare to Automate PerfectOffice Applications

Sep 95 164-000047-009 An Introduction to Novell’s NetWare Client32 for Windows 95 Overview and Benefits of Novell Embedded Systems Technology (NEST) Using UnixWare 2 to Set Up a Web Server: A Case Study Comparing Novell’s IPX-to-IP Connectivity Solutions: IP Tunneling, NetWare/IP, and IP Relay

Aug 95 164-000047-008 Backing Up and Restoring NetWare Directory Services in NetWare 4 SBACKUP Configuration and Usage Notes Troubleshooting Tips for NetWare Directory Services

Jul 95 164-000047-007 Installing and Configuring UnixWare 2.0 Understanding the NetWare UNIX Client (NUC) NLM 2.0 Configuring Asynchronous Connections with the NetWare MultiProtocol Router 3.0 Software

Jun 95 164-000047-006 Centralized Multiserver Backup over 100VG-AnyLAN Networks Using Novell’s NetWare User Tools (NWUSER.EXE) for MS Windows Clients Anatomy of a Voice Processing NLM ABEND Recovery Techniques for NetWare 3 and 4

http://www.novell.com/appnotes October 2003 152 Novell AppNotes

Date Part Number Titles

May 95 164-000047-005 The Benefits of Using Intelligent LAN Adapters in NetWare Servers Using the NTSWD Utility to Diagnose MS Windows Workstation Problems Upgrading to NetWare 4.1 Across a LAN/WAN Using RCONSOLE Using NDS User Object Properties in NetWare 4.1 Login Scripts

Apr 95 164-000047-004 Integrating the NetWare DOS Requester (VLMs) with Windows for Workgroups Importing User Information into NetWare Directory Services Using UIMPORT Unified Messaging: Paving the Road to Pervasive Computing Using NetWare/IP Over Satellite Networks Understanding NetWare HostPrint 1.1x The NetWare 4 Memory Architecture / Understanding Memory Fragmentation in NetWare Servers Using MONITOR to Track NetWare 4 Memory Allocation

Mar 95 164-000047-003 Using the DSMERGE Utility in NetWare 4.1 Support Issues for the NetWare DOS Requester (VLM) 1.2 Black Explained NetWare Workstation Security Architecture What’s New in UnixWare 2 NetWare for SAA 2.0: An Overview of Novell’s Next Generation SNA Connectivity Product Tuning Cache with the NetWare 4 LRU Sitting Time Statistic

Feb 95 164-000047-002 Inside Novell’s High Capacity Storage System (HCSS) Resolving Critical Server Issues Computer Telephone Integration: Call Control vs. Voice Processing Wide Area Networking with Frame Relay and NetWare MultiProtocol RouterNovell AppNotes (cont.)

Jan 95 164-000047-001 What’s New in NetWare 4.1 NetWare 4.1 CIT Interoperability Testing Overview NetWare 4.1 Interoperability Test Configurations and Troubleshooting Planning an NDS Tree Understanding and Using NDS Objects

Dec 94 164-000036-012 NetWare IPX Routing Enhancements Customizing Your NetWare Link Services Protocol Routing Configuration Managing Basic MHS Printing to Network Printers in Windows 3.1 Configuring UnixWare’s Point-to-Point Protocol (PPP)

Nov 94 164-000036-011 Characteristics of TCP/IP, IPX/SPX, and NCP Protocols Over VSAT NetWare Management System (NMS) Components and Functionality Upgrading to NetWare 4.01: A Case Study of Canadian Tire Corporation, Ltd.

Oct 94 164-000036-010 Migrating from NetWare Name Services to NetWare Directory Services Understanding the Role of Identification and Authentication in NetWare 4 Managing and Using FirstMail Configuring NetWare Connect with TCP/IP Remote Clients Installing and Configuring UnixWare 1.1

Sep 94 164-000036-009 Using Novell’s CDROM.NLM to Run CD-ROM Drives as NetWare Volumes What’s New in NetWare 4.02 Effectively Managing RIP and SAP Traffic with Filtering UnixWare 1.1 as a NetWare Client Troubleshooting Printing in a NetWare for Macintosh Environment

http://www.novell.com/appnotes October 2003 153 Novell AppNotes

Date Part Number Titles

Aug 94 164-000036-008 An Introduction to Novell’s Open Security Architecture Using DOS Batch Files with NetWare 4 to Ease the Transition from NetWare 3 Installing Basic MHS and FirstMail TUXEDO System Release 4.2.2: The Path to Reliable Client/Server Computing Unattended OS/2 CID Installation Using NetWare Navigator

Jul 94 164-000036-007 Configuring NetWare 4 for the Mobile User Key Issues Surrounding Enterprise E-Mail Testing Performance of NetWare SNA Remote Host Connectivity Products Customizing Autodiscovery Using NMS Records Management: Document Storage and Retrieval Challenges in an Enterprise Network Application of Networked Multimedia in Business and Education

Jun 94 164-000036-006 NET.CFG Parameters for the NetWare DOS Requester 1.1 Using Network-Direct Print Devices in NetWare 4 Compression and Suballocation in NetWare 4 Managing the Branch Office: Part 2 Implementing NetWare MultiProtocol Router Products in an IBM Source-Route Bridged Environment

May 94 164-000036-005 The Functions and Operations of the NetWare DOS Requester v1.1 Managing the Branch Office: Part 1 Performance Tuning NetWare Connect 1.0 Optimizing NetWare Wide Area Networks NetWare Link Services Protocol: Link-State Routing in a NetWare Environment

Apr 94 164-000036-004 SPECIAL EDITION: Building and Auditing a Trusted Network Environment with NetWare 4

Mar 94 164-000036-003 An Introduction to AppWare and Visual AppBuilder Management Procedures for Directory Services in NetWare 4.01 Optimizing NetWare as a Database Platform Providing DOS and MS Windows User Access to UNIX/NFS Files Ghardenstone: A Novell Methodology for Network Performance Evaluation A Review of Bridging and Routing Techniques

Feb 94 164-000036-002 Implementing Naming Standards for NetWare Directory Services Implementing and Configuring Novell/AT&T Telephony Services NetWare Distributed Management Services: An Integrated Approach for Managing Network Computing Environments Certification Programs for Networking Professionals

Jan 94 164-000036-001 Novell’s Corporate-Wide Upgrade to NetWare 4 Upgrading to NetWare 4: The Chase Manhattan Bank’s CC and FMI Groups Time in the NetWare Environment Computer-Telephone Integration with Novell’s Telephony Services An Overview of Multimedia Technologies

Dec 93 164-000032-012 Installing NetWare 3.12 from CD-ROM Wide Area Networking with VSAT: A Customer Installation Workstation Memory Management: Using QEMM386 7.01, 386 To THe Max 7.0, and MS-DOS 6 IBM AS/400 Connectivity Using NetWare for SAA 1.3 in an Ethernet Environment

Nov 93 164-000032-011 Time Synchronization in NetWare 4.x Designing NetWare 4.x Security Packet Burst Update: BNETX vs. VLM Implementations Multi-Segment LAN Imaging: Departmental Configuration Guidelines

http://www.novell.com/appnotes October 2003 154 Novell AppNotes

Date Part Number Titles

Oct 93 164-000032-010 NetWare 4.x Performance Tuning and Optimization: Part 3 What’s New in NetWare 4.01 NetWare 3.12 Enhancements Using NetWare HostPrint for AS/400 Host Printing Managing Memory in a DOS Workstation: Using Novell DOS 7

Sep 93 164-000032-009 Optimizing Printing with NetWare 4.x and 3.1x Understanding and Using NDS Alias Objects NetWare Migration Utilities Part 2: The Across-the-Wire Migration Utility An Introduction to Network Workflow Migrating Ethernet Frame Types from 802.3 Raw to IEEE 802.2 Multilingual PC Setup with DR DOS

Aug 93 164-000032-008 NetWare for Macintosh 3.xx Print Services: A Configuration Tutorial Exploring Hard Disk Compression NACS 3.0 and NetWare Access Server 1.3 Integration

Jul 93 164-000032-007 Using NETADMIN to Create and Administer NDS Objects A Test Workload Analysis of LANQuest Lab’s Application Benchmark (LAB) Test Suite Multi-Segment LAN Imaging Implementations: Four Segment Ethernet A NetWare Interface for Visual Basic Understanding Relational Theory

Jun 93 164-000032-006 NetWare 4.0 Performance Tuning and Optimization: Part 2 NetWare 4.0 Bindery Emulation: An Overview Bindery Emulation and NetWare for Macintosh NetWare Migration Utilities Part 1: The In-Place Upgrade NLM Administering DOS Paradox and Paradox for Windows on NetWare Virtual Server Technology and DataClub File Sharing

May 93 164-000032-005 NetWare 4.0 Performance Tuning and Optimization: Part 1 Tips and Techniques for Troubleshooting Drive Deactivation in NetWare 3.1x Imaging Test Results: Retrieval Rates on Single- and Multiple-Segment LANs An Introduction to Videomedia and NetWare

Apr 93 164-000032-004 NetWare 4.0 Special Edition Overview of NetWare 4.0 New Features An Introduciton to NetWare Directory Services Planning a NetWare 4.0 Directory Tree Understanding NetWare Directory Services Rights Planning for NetWare 4.0 Installation, Server Migration, and Coexistence Using the DOS Requester with NetWare 4.0 Migrating to NetWare 4.0: An Example

Mar 93 164-000032-003 An Introduction to Developing Cross-Platform Client/Server GUI Applications Installing and Configuring NetWare TCP/IP on a NetWare 3.11 Server NetView LAN Management: RUNCMDs Made Easy NetWare and Windows for Workgroups Integration Using Production Workload Characteristics to Validate Performance Evaluation Studies

Feb 93 164-000032-002 Mapping Between UNIX Permissions and NetWare Rights in NetWare NFS ODINSUP Interoperability Configurations for DOS Workstations Imaging Configuration Performance Test Results

Jan 93 164-000032-001 The State of the Infrastructure for Distributed Computing IBM AS/400 Connectivity Using NetWare for SAA v1.3 Imaging Configurations and Process Testing

http://www.novell.com/appnotes October 2003 155 Developer Notes All articles can be viewed in HTML format and downloaded in Adobe Acrobat (PDF), eBook, and HTML formats at http://www.novell.com/appnotes. Novell Developer Notes

Date Titles

June 00 Programming NDS with NetWare Loadable Modules, Part 3 The Novell Controls for ActiveX and Visual Basic: Adding Layouts to the NDS Directory How to Make an Existing LDAP Application Work with NDS Managing a Web Site with WebSphere Studio Novell Ships Backup Service for NetWare

May 00 Programming NDS with NetWare Loadable Modules (NLMs), Part 2 An Introduction to NDS Corporate Edition Getting Started with Oracle on NetWare

Apr 00 Programming NDS with NetWare Loadable Modules (NLMs), Part 1 SecretStore Novell Single Sign-on Version 1.1 Enabling E-Business through Novell’s iChain

Mar 00 The Novell Controls for ActiveX and Visual Basic: Reading and Writing NDS Stream Fields CGI: Good for the Web, or Outdated Technology? Novell Announces Novell Modular Authentication Services (NMAS) Overview of NDS eDirectory

Feb 00 Creating Applications with DSAPI Novell ScriptPages (NSP): Uncovered CNN Interactive Selects NDS eDirectory

Jan 00 The Novell Controls for ActiveX and Visual Basic: Creating Directory Entries NetWare 5.1: The Web Development Platform TREEINT.NLM: NDS Tree Integration Utility meBusiness: Convenience, Choice and Control through digitalme Extending the NDS Schema with Visual Basic 6 and Novell’s ActiveX Controls

Dec 99 The Novell Controls for ActiveX and Visual Basic: Writing NDS Field Values Features of the Novell Kernel Services Programming Environment for NLMs: Part Four WebSphere Components Introduction to NetWare 5 Memory Enhancements Novell, Java, and Voyager Novell to Ship NetWare 5.1 Beta Novell Year 2000 Testing

Nov 99 Configuring Your Client Application for LDAP Secure Binds ASN.1, OIDs, and NDS—The Common Fit Features of the Novell Kernel Services Programming Environment for NLMs: Part Three Novell SSL for Java SecretStore Single Sign-on Programming on NetWare Made Easy with Perl Scripting Developer Tools: Contest Winners Use NDS and NetWare to Create Prize-Winning Apps

Oct 99 The Novell Controls for ActiveX and Visual Basic: Searching NDS Field Values Using JNDI and Novell’s NJCL to Access NDS Using the NetWare Deployment Kit to Upgrade to NetWare 5 Features of the Novell Kernel Services Programming Environment for NLMs: Part Two Overview of New Features in BorderManager Enterprise Edition 3.5 Novell Developer Workshop Tour ‘99

http://www.novell.com/appnotes October 2003 156 Developer Notes

Date Titles

Sep 99 The Novell Controls for ActiveX and Visual Basic: Reading Field Values NDS Glossary The Future of Application Development on NetWare with NLMs SCHMAP: NDS Schema Extension and LDAP-to-NDS Mapping Utility Features of the Novell Kernel Services Programming Environment for NLMs: Part One SCHMIG: Schema Migration Utility Developer Tools: Credentia ViaNet/NDS

Aug 99 White Pages Application NDS Programming Tutorial: Directory Concepts White Pages Application NDS Programming Tutorial: The Demo Application Building Web Database Applications Using Novell Script for NetWare The Business Case for Directory-Enabling Your Application with NDS Benefits of NDS

July 99 Designing NDS Schema Extensions The Novell Controls for ActiveX and Visual Basic: Logging In Extending the NDS Schema with DSAPIs NDS 8 Update Novell Delivers High-Availability Solution for NetWare 5

June 99 Programming with the Novell Controls for ActiveX and Visual Basic: Getting Started Configuring JavaBeans for Novell Services Schema Enhancements for NDS 8 Runtime Programming in Java: A Technology Primer Using BulletProof's JDesignerPro 3.0 to Build Java Applications on NetWare 5 Novell Delivers Unmatched Performance Foundation for E-Business With Internet Caching Sys- tem

May 99 Introduction to NDS for Developers Applications for NetWare 5, Part 4 Overview of NDS for NT 2.0 BorderManager Authentication Services 3 EPC C/C++ Enterprise Edition for Novell NetWare Novell SuperLab NDS for Solaris: An Overview Active Server Pages (ASP) on NetWare

Apr 99 Understanding and Using Novell's Universal Component System The Novell Developer Kit NDS for NT Q & A Applications for NetWare 5, Part 3 Using Novell's Year 2000 Information Ferret to Determine Your Y2K Status

Mar 99 Introduction to NDS v8 DeveloperNet University's NDS 102 Using C and LDAP Stick a Fork in it: 1998 Novell Developer Workshop Tour Series Well Done Applications for NetWare 5, Part 2 The Winners' Circle Novell Java Q & A

Feb 99 The Winners' Circle NDS102: Authenticating to NDS Using C (NDAP) APIs Why Develop to NetWare 5? Part 2 What's New in NetWare 4.2? NetWare 5 Tested and Approved Applications

http://www.novell.com/appnotes October 2003 157 Developer Notes

Date Titles

Jan 99 Developing NLMs with Metrowerks CodeWarrior NetWare 5 Overview, Part 2 Writing Java Applications on NetWare Using Legacy NLMs Why Develop to NetWare 5?

Dec 98 CodeWarrior's Architectural Advantage DeveloperNet University's NDS101 Using C and LDAP Novell's Controlled Cryptographic Services Developing Target Service Agents Using CCSCL AnyInfo Example 7: Using JDBC to Access an Oracle8 Database

Nov 98 Configuring LDAP Services for NDS DeveloperNet University's NDS101 Using C Using Java Naming and Directory Interface (JNDI) to Develop Novell Directory Services-Enabled Applications

Oct 98 Overview of the Novell Developer Kit Novell Developer Kit Q&A Using the NetWare 5 NDS Administrator Utility as a Development Tool Introducing the DeveloperNet University Web Site and Article Series NDS101 with Novell's NWDir Bean NDS Schema Overview AnyInfo Example 6: Using RMI to Access a Database Service

Sep 98 NetWare 5 Overview, Part I New Features of NDS in NetWare 5 Building NetWare DLLs NetWare 5 Security Components Oracle8 for NetWare AnyInfo Example 5: Using the Novell NWDir Bean for NDS Access

Aug 98 AnyInfo Example 4: Implementing a Scalable NDS Design with ConsoleOne Snap-ins Differences between LDAP 2 and 3 Protocols Overview of Novell DNS/DHCP Services Scheme for Optimizing Calls to Functions through Pointers on Pentium Processors

Jul 98 Transformation of API_Info into a Multi-tiered, Database Application Developing an LDAP Client for Novell Directory Services Quoi de Neuf: What's New in NetWare 5?

Jun 98 NDS Services NDS Design for ZENworks and NDS for NT Developing NDS-Enabled Solutions at Clemson University, Part I Netoria: Simplified Logins with SFLOGIN, An NDS-Enabled Application NetVision: Using NDS as a Metadirectory to Synchronize Different Directories Top Eight Reasons to Use NDS for NT

May 98 The Novell OSA SDK: An Overview Extending an NDS Schema with ConsoleOne's NDS Namespace NDS Database Operations Overview of Modesto

Apr 98 Adding a Property Page to ConsoleOne ZENworks and the Art of Desktop Management NDS Technical Overview

http://www.novell.com/appnotes October 2003 158 Developer Notes

Date Titles

Mar 98 Open Solutions Architecture Technical Overview Novell ConsoleOne: Common Console for Management and Administration Utilities More on OSA's New Tools Platform, ConsoleOne Snapping Your NDS Application into ConsoleOne Novell Scripting Options and Future Strategy

Feb 98 OSA: A New Focus for Novell and Developers Opportunities for Server-Side Java The NLM Side of the API_Info Java/NLM Gateway Example Installing and Using NPrinter NT Developer Support Forum Novell's Project 2000 Developer Q & A

Jan 98 Extending Your NLM System into Java, with Ease The Java Side of the API_Info Java/NLM Gateway Administration of the Novell Trader Programming NetWare with Java

http://www.novell.com/appnotes October 2003 159 ®

Novell, Inc. 1800 S. Novell Place Provo, Utah 84606 USA

www.novell.com/appnotes

Spotlight on