Showing posts with label XPages. Show all posts
Showing posts with label XPages. Show all posts

Wednesday, 11 March 2015

2015 - ISA ESS Enablement Plan in India

Location - India
Training Mode: Class-room training (Lecture, Show-Tell and Hands-on)
Registrations open for India Business Partners and Customers only.

NORTH - GURGAON
Training location: IBM Silokhera Office, Gurgaon

Topic
Duration
Mode
Audience
Dates
Register
IBM Domino Deployment - Basic
1 day
Hands-on
Admin
11-Mar
IBM Portal Deployment and Administration
2 days
Show-Tell
Admin
17-Mar
18-Mar
IBM  Xpages Development - Advanced
2 days
Hands-on
Dev
24-Mar
25-Mar
IBM xDx and Social Business Value Proposition
0.5 day
Show-Tell
Customers
31-Mar
IBM Connections - Business Value Proposition
0.5 day
Show-Tell
Customers
9-Apr
IBM Connections UI Customization and Application Development Workshop
1 day
Show-Tell
Admin
14-Apr
IBM Domino Deployment - Advanced
1 day
Hands-on
Admin
21-Apr
IBM Sametime Deployment
1 day
Show-Tell
Admin
12-May
IBM Connections Cloud (Social Mail) - Business Value Proposition
1 day
Show-Tell
Admin
14-May
IBM Portal Application Development Workshop
1 day
Hands-on
Admin
26-May

WEST - MUMBAI
Training location: IBM BKC Office, Mumbai

Topic
Duration
Mode
Audience
Dates
Register
IBM Connections - Business Value Proposition
0.5 day
Show-Tell
Customers
10-Mar
IBM Domino Deployment - Advanced
1 day
Hands-on
Admin
13-Mar
IBM Connections Cloud - Business Value Proposition
1 day
Show-Tell
Admin
27-Mar
IBM Portal Application Development Workshop
1 day
Hands-on
Admin
7-Apr
IBM  Xpages Development - Basic
1 day
Hands-on
Dev
30-Apr
IBM Connections Deployment and Administration
2 days
Show-Tell
Admin
5-May
6-May
IBM  Xpages Development - Advanced
2 days
Hands-on
Dev
19-May
20-May
IBM Connections UI Customization and Application Development Workshop
1 day
Show-Tell
Admin
9-Jun


Note*: Limited seats only.. Only confirmed participants will be able to attend the sessions.

Tuesday, 3 December 2013

Forgot password application for Domino sever

Forgot Password Functionality for Domino


Facing issues with installation ?? : Try the troubleshooting section at the bottom of this article.

Business Case:
This application implements the “Forgot Password” functionality for Domino. This feature is available today for almost any Web application which try to reset the password by sending notification to registered mail address. However, if you forget your Domino Webmail/Notes Client password, then you need to contact Administrators to reset the password. 
If the Organization has set the policy to change the passwords after every 60/90 days, then the password reset requests are more often. For a large Customer, we observed that around 60% Support requests are meant for Password Reset for Notes Client/Web Mail. 
This tools aims at minimizing such Support Calls by encouraging users to Register for Self Password Reset application. Users need to do one time registration and set their secret questions and answers. Once registered, users can use this application to Reset their Webmail/Notes Client passwords without engaging the Support team. 
Features of application:
- Reset password for both HTTP and Notes client (via ID Vault) in a single step.
- Front end application only consists of XPages design elements with total separation from data.
- No direct access to data via web interface/domino URL
- Secret answers secured with MD5 encryption.
- Forced  authentication for Registering/editing the profile.
- Used single XPage for password reset wizard with efficient use of Dynamic content control. Browser back button send use back to the start of wizard. Therefore, application having full control of flow.
- Lockout of Accounts and preventing unauthorized attempt to reset password. If tried to answer incorrectly more than 5 times. Lock-out is cleared automatically after defined interval via a Scheduled agent. 
Assumptions:
- ID Vault should be configured and installed.
- The Signer ID should have access to run XPages application and Password Reset Authority in ID Vault.
Application Architecture: 
wps_clip_image-21961
It consists of two NSF files: 
Front-End Application: The XPages frontend and the other one to store use profiles.
The first database contains configuration information to connect to second db. No other data is stored in it. It contains all the XPages design elements and is available for anonymous access use.
Back-End Data Storage Application: The second database contains all the registered user's profile documents. This database has no URL access and is only accessible by the front-end XPages interface. This approach avoids all URL based quirks to access data in NSF file. The user profile stores questions and secret answers as selected by user. The data is stored with MD5 hashing to ensure even administrators can't get access to user's personal information.
Application flow:
Step 1: Register your profile one time to select three questions from a admin defined list of questions. Provide easy to remember answers for the selected questions.
Step 2: If you have forgotten your password, then go to the application and proceed with password reset wizard. 
- It will ask first to verify email address 
- If the use profile is found for the entered email I'd, the application will prompt to provide answers for 3 questions. 
- If the answers match with the stored one in profile, user is allowed to provide new password. 
- The final screen provides confirmation message with results of password change process.
Installation Instructions:
- Download the application from project Download section and unzip on local machine. 
- Copy the two NSF files to your Domino Server’s Data Directory. 
- Sign the two databases with ID which has got rights to change password in ID Vault and can run XPages application on Server. 
- Open the resetpwd.nsf database in Notes Client and Modify the settings in Keywords view.
wps_clip_image-4648
n DATA_DB_PATH keyword specifies the path of ForgotPasswordData.nsf database. Please ensure a double “\\” to be added to path.
n The other settings specify the Domino Server names where ID Vault is located and where we would like to change the HTTP Password. 
n Few sample questions which can be easily customized in the QuestionList Keyword.
- Open the application resetpwd.nsf via Web Browser and check if it’s displaying the application HomePage. 
- Try to register a user’s profile and then try to reset the password for the same user. 
- The final screen will show status message of password change for HTTP and ID Vault. Fix the permission issues if any with ID Vault.
- Enable the Scheduled agent to Run on Server to UnBlock the profiles. This agent unlocks all such profile which were locked due to multiple failed attempts to reset the password. This is to avoid any person randomly trying to reset the password.
- Change Logos, Banner and Company Name in ccAppLayout Custom Control. 
wps_clip_image-14165


Let me know if any specific functionality is required to be added to the application.

Troubleshooting:

Pre-requisites:

1. This application require minimum Domino v8.5.3 Upgrade Pack 1 or Domino v9.0. It might not work with prior version of Domino, as advanced features of Extension library have been used.

2. Please ensure Session Authentication is Enabled on Domino Server.

3. Sign both the Databases with Admin Id. Signing with Server ID will not work.

4. Both user and server (on which application is running) should have Password Reset Authority with agent access.


Known errors and resolutions: 

1.  403 forbidden errors: 
User will get  403 forbidden error if a db is not signed correctly or user/server does not have access to run restricted agent. Therefore, ensure that both databases have been signed properly. Also, ensure that user has rights to run XPages applications on server. To allow user id being used for signing the db, add the same to server document under security--> programability restrictions.

2. Password reset authority errors: 
In ID Vault setup please make sure at the end there is @ shows up besides person and server name it comes up when put a tick mark
    In the right box, select an organization or organizational unit of users whose passwords will be reset.
    In the top, left box select the name of a user or server under which the application is authorized to run.
    Click "Add" to give the selected user or server name password reset authority for the organization or organizational unit highlighted on the right.
    If you added a user name, keep the user name highlighted on the right, and select "Self-service password reset authority."
Both user and server (on which application is running) should have Password Reset Authority with agent access.

Tuesday, 22 May 2012

Add AJAX “Loading..” control in XPages for Partial Updates

This is a two step process:

1. Add following Dojo modules to your XPage.
<xp:this.resources>
        <xp:dojoModule name="extlib.dijit.ExtLib"></xp:dojoModule>
        <xp:dojoModule name="extlib.dijit.Loading"></xp:dojoModule>
</xp:this.resources>
 

2. Add following lines to the EventHandler of your button/link which is going to be used for Partial Update:
<xp:this.onStart><![CDATA[XSP.startAjaxLoading()]]></xp:this.onStart>
<xp:this.onComplete><![CDATA[XSP.endAjaxLoading()]]></xp:this.onComplete>
<xp:this.onError><![CDATA[XSP.endAjaxLoading()]]></xp:this.onError>

That’s all !

A similar “Please wait..” dialog will appear and will display the page again once the Partial Update is complete..

image

Thursday, 12 April 2012

Announcement: Workflow for XPages

XPages - Announcement

Announcement: Workflow for XPages

Phil Riand, Qian Liang and team have contributed a new project to OpenNTF - Workflow for XPages.

Read the following deck for a description of the project.


Thursday, 29 March 2012

Developing High Performing XPages Applications

Recently, I come across a strange scenario, where an XPages application was not able to meet the performance testing benchmark of 5sec average load time for more than 300 concurrent users. The application performed like a charm till 100 concurrent users but beyond that the response time was increasing to around 25sec. The expert team performed Code Review to optimize the performance, CPU, IO, Memory Utilization analysis to figure out the issue with Application's response time. I am sharing my experience for the benefit of others as well.. The result that we figured out was related to Memory Leak in "Native API Calls". This indeed is a very important point for almost all the XPages applications.

Following Technotes highlight the importance of using Recycle() method in each Notes Object accessed via Java or SSJS code.

Title:    'LSXBE: Out of backend memory' errors coincide with Notes/Domino performance and crash issues
Doc #:    1438386
URL:    http://www.ibm.com/support/docview.wss?uid=swg21438386

Title:    Why it is important to use the Recycle() method on every Java object
Doc #:    1097861
URL:    http://www.ibm.com/support/docview.wss?uid=swg21097861

Important point to notice is the approach how Java code handles the Notes Objects. Setting a java Object is not sufficient for Domino Java Objects. They must be recycled!

Creating an object in LotusScript:

When you create an object in LotusScript, you create two objects: one in LotusScript and one in the Notes backend (C++ code). The LotusScript object "points" to the C++ object which really implements the class behavior. When the LotusScript agent or event ends, both objects are destroyed automatically. If the objects were not eliminated, they would stay resident in memory, thereby creating a memory leak.
Creating an object in Java:
If you create an object in Java, the same applies. This object is a pointer that points to an object that is created in C++. It is common in pure Java coding to set something to Null in order for it to be flagged for garbage collection (gc) immediately. This is called "aggressive" garbage collection.
However, when using Notes objects for Java, setting something to Null marks the Java object for garbage collection but does not mark the C++ object for garbage collection. Dereferencing the Java object flags it for garbage collection but nothing will be affected on the C++ object.
Why recycle?
Recycle() destroys the C++ object and sets the Java object for garbage collection. If you mark objects Null, you can still experience memory issues. When using objects in an agent, all objects (both Java and C++) are destroyed when the agent ends. When using servlets, .jsp's, or standalone applications, recycle must be used since Domino will never clean up these backend objects.

Following URL contains a nice collection of XPages Performance Tips:

http://xpageswiki.com/web/youatnotes/wiki-xpages.nsf/dx/Memory_Usage_and_Performance

Multi-threaded Programming in XPages

Thanks to the great work done by Niklas Heidloff, Philippe Riand.

We have a great capability to write Multi threaded applications in XPages. A project “Threads and Jobs” has been posted on OpenNTF.org

http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=Threads%20and%20Jobs

The project is using the The Eclipse jobs framework (http://www.eclipse.org/articles/Article-Concurrency/jobs-api.html) to perform time consuming processes asynchronously while the XPages UI is available for user without freezing.

Here’s a short video posted by Phil: