cancel
Showing results for 
Search instead for 
Did you mean: 

.Net PDK issues

Former Member
0 Kudos

Hi,

We are trying to configure the .Net PDK for VS 2005 (.Net 2.0)

On the portal side, when you configure the 'NET Runtime Service Configuration' does the 'check server'

button work?

If we monitor network traffic, we can see the portal connecting to the 'Portal Runtime for .NET' on the developers pc, but for some reason the portal page does nothing, it just shows 'processing.....'

We also get an error...

pcd:portal_content/PDK_for_NET/MyPortalApp2/iviews/PortalComponent1

#1.#00144FA733FC007500000042000014930004623FA93B93EE#1233925468558#com.sap.porta

l.dotnet#sap.com/irj#com.sap.portal.dotnet#PDKDEVELOPER#401##n/a##aba8dd60f44e11

dd8aa100144fa733fc#SAPEngine_Application_Thread[impl:3]_22##0#0#Error#1#/System/

Server#Java###Fri Feb 06 13:04:28 GMT 2009 Processing request failed on host: tc

p://****:8051 Could be a problem in the PDK for .Net framewo

rk!

##

#1.#00144FA733FC007500000044000014930004623FA978C87E#1233925472569#com.sap.porta

l.dotnet#sap.com/irj#com.sap.portal.dotnet#PDKDEVELOPER#401##n/a##aba8dd60f44e11

dd8aa100144fa733fc#SAPEngine_Application_Thread[impl:3]_22##0#0#Error#1#/System/

Server#Java###Fri Feb 06 13:04:32 GMT 2009 Processing request failed on host: tc

p://****:8051 Could be a problem in the PDK for .Net framewo

rk!

##

#1.#00144FA733FC007500000046000014930004623FA978D349#1233925472572#com.sap.porta

l.dotnet#sap.com/irj#com.sap.portal.dotnet#PDKDEVELOPER#401##n/a##aba8dd60f44e11

dd8aa100144fa733fc#SAPEngine_Application_Thread[impl:3]_22##0#0#Fatal#1#/System/

Server#Java### Processing request failed on host: tcp://****.salford.gov.uk

:8051 Could be a problem in the PDK for .Net framework!

##

#1.#00144FA733FC007500000047000014930004623FA97902CB#1233925472573#com.sap.porta

l.portal#sap.com/irj#com.sap.portal.portal#PDKDEVELOPER#401##n/a##aba8dd60f44e11

dd8aa100144fa733fc#SAPEngine_Application_Thread[impl:3]_22##0#0#Error#1#/System/

Server#Java###Exception ID:01:04_06/02/09_0016_107611250

[EXCEPTION]

How and where would we get a more verbose error message ?

Regards

Nick

Accepted Solutions (1)

Accepted Solutions (1)

rima-sirich
Advisor
Advisor
0 Kudos

Hi Nick,

Could you, please, provide more information regarding following:

1. On which operating system is Portal Runtime for Microsoft .NET installed ? Is it 32-bit or 64-bit system ? Do you succeed to start Portal Runtime for Microsoft .NET service ?

2. Which Portal version are you using ? Is it NW 04 or NW 04s ? Which SP ?

3. On which operating system is Portal installed ? Is it Windows or Unix ? Is it 32-bit or 64-bit system ?

Regards,

Rima.

Former Member
0 Kudos

The portal runtime service is running on XP SP 2 (32bit)

This is running on a VM

The mmc snap-in reports that the service has started....

The portal itself is installed on a Solaris SPARC 64bit (Unix OS)

EP 7.0 SP stack 14.

We are currently patching all the SAP systems up to SP17. Portal will be the last system but EPD should hopefully be on SP17 by the end of next week.

The two .Net components are automatically deployed as of EP 7.0 SP stack 09, although we did re-deploy these

Details from EPD components list:

sap.com

com.sap.portal.dotnet.framework

null (7.0013.20070808101344.0000)

SAP AG

SAP AG

20090206114521

null/null

sap.com

com.sap.portal.dotnet.services.systems

null (7.0012.20070426205038.0000)

SAP AG

SAP AG

20090206114603

null/null

Regards

rima-sirich
Advisor
Advisor
0 Kudos

Hi Nick,

1. As you are using EP 7, you need to install at least Hotfix 1 for PDK for .NET. All hotfixes are available [here|https://www.sdn.sap.com/irj/sdn/dotnet?rid=/webcontent/uuid/40be5378-bfa9-2b10-399b-ba5719c0b5b8] [original link is broken];

2. Regarding the error you get, it could be caused by a hard limit of file descriptors ( on Solaris machine ) that needs to be increased. I would advise you to make following configuration steps:

a. Check the hard limit of number of file descriptors with

"ulimit -n -H"

b. If it is less than 8193 then edit /etc/system and add a

"set rlim_fd_max=8193" command and reboot.

c. After reboot, check if it solved the issue.

Best Regards,

Rima.

Former Member
0 Kudos

Hi Rima,

Thanks for your response....

We have read SAP note 724713

This recommends leaving only one parameter setting

Which seams to imply leaving as is...

'Only one parameter from SAP note 395438 should remain in file

/etc/system: set rlim_fd_cur=8192'

'Please do not use any old /etc/system settings from SAP note 395438

with Solaris 10'

Regards

Nick

rima-sirich
Advisor
Advisor
0 Kudos

Hi Nick,

The issue you experiences is caused by the fact that connection could not be established between the Portal and Portal Runtime for .NET. There are a lot of reasons that could prevent from the connection to be established ( closed ports, wrong configuration, etc). My suggestion to set rlim_fd_cur to 8193 ( it is not enough to set rlim_fd_cur to 8192 ) comes from personal experience with another customer that didn't succeed to work with PDK for .NET against Portal 7.0 installed on Solaris 10 machine. Setting rlim_fd_cur to 8193 solved connection problem in his environment.

Best Regards,

Rima.

Former Member
0 Kudos

We've actioned

'Setting rlim_fd_cur to 8193 '

We are still getting errors.

Enterprise Portal just show's 'processing' when clicking check server

We can see TCP packets getting to our .Net Run time Windows Service

Regards

rima-sirich
Advisor
Advisor
0 Kudos

Hi Nick,

Changing this setting requires Solaris server reboot. In case the issue persists after reboot, I would advise you to try to get more information regarding the error. Go to Portal Runtime for .NET configuration page, check "Enable janet logging" checkbox, save settings and restart iViewProcessorService. After that try "Connect to server" and see if there are new messages in the log.

Besides this, check if your configuration settings are ok. You can write them here and we can validate them together.

Regards,

Rima.

Former Member
0 Kudos

I started the SAP Portal Runtime for .NET on my machine (vd-bgs-01)

Port 8050

It is running as cos\itsdname, e.g. local admin on that machine.

Currently the settings in the portal are:

Allow server affinity,

Enable Ja.NET logging,

Request timeout = 5000

Lease duration = 5

.NET runtime servers- Portal Node = *, Host:Port = vd-bgs-01.salford.gov.uk:8050

The portal is on a 64bit Sun box (unix)

The .Net runtime is on a 32 bit Windows XP virtual machine

We an see TCP packets going to and from the Box i.e. from the protal, to the portal.

We get no errors in the windows event log

We get no errors on the portal, it just wait's and waits.....

Does the 'check server' button actually work ?

Edited by: Nick Wright on Mar 5, 2009 10:59 AM

Former Member
0 Kudos

Hi Rima,

Once we "Enable the janet logging" checkbox, where is the logging taking place... ?

Is it possible to download a Windows install of Enterprise Portal and what versions are available ?

We are considering installing this...

Would this help validate if its a client or server issue ?

Regards

rima-sirich
Advisor
Advisor
0 Kudos

Hi Nick,

1. "Enable janet logging" writes logs to Portal logger with com.sap.portal.dotnet.framework location ( by default, its logging level = NONE, so verify that its logging level was changed at least to ERROR )

2. I didn't find a place on SDN that enables downloading any Portal version. I am pretty sure that this question can be handled by SAP support.

3. On my opinion, your Portal doesn't succeed to establish a connection to the Portal Runtime for .NET because of incomplete configuration. You didn't mention how many nodes your Portal has. Here is an example of configuration for 2 nodes:

Portal Servers section

PortalNode Host:Port

PortalNode1 id localhost:8051

PortalNode2 id localhost:8052

.NET Runtime Servers section

PortalNode Host:Port

PortalNode1 id .NET server name:8050

PortalNode2 id .NET server name:8050

Save changes, restart the configuration service and try again.

Best Regards,

Rima.

Former Member
0 Kudos

Rima,

Do you advise installing the .net runtime on a 64bit Windows OS ?

We've just noticed system requirements of the .net runtime is 32 bit os

Do you advise us to install a 32 Bit portal install... ?

Regards

rima-sirich
Advisor
Advisor
0 Kudos

Hi Nick,

No, I would advise you to open an OSS message on EP-PIN-DNT component and ask from primary support to put it on my name. The OSS message will enable me to connect to your system and try to help you.

Best Regards,

Rima Rudnik-Sirich.

Former Member
0 Kudos

Hi Rima,

A colleague has created a call for me, under call no. 357405

We look forward to any assistance you can provide.

Regards

Nick

Former Member
0 Kudos

Hi Rima,

Can you confirm the correct installation sequence for the following :-

SAP Portal Runtime 2.5 for Microsoft .NET

Hotfix1

Hotfix2

epsrv.exe from note... 1024281

Is this that same as hotfix 3?

The OS is a 64bit Windows Server 2008 Enterprise

The OS is a virtual machine....

Regards

rima-sirich
Advisor
Advisor
0 Kudos

Hi Nick,

1. Yes, epsrv.exe from SAP note 1024281 is the same as Hotfix 3.

2. The officially supported operating systems for Portal Runtime for .NET are Windows Server 2003/Windows XP/Windows Vista. I am not saying that Portal Runtime for .NET shouldn't work on Windows Server 2008, but it is officially still not supported. In order to eliminate the possibility that your issue is related to not supported operating system, I would suggest to install Portal Runtime for .NET on any supported operating system ( even on your developement PC just for test ) and to check if the issue persists. Of course, you need to reconfigure your Portal to use this Portal Runtime for .NET.

Best Regards,

Rima.

Former Member
0 Kudos

Hi Rima,

We also have it installed on a Windows XP machine SP 2

Regards

Nick

Former Member
0 Kudos

Hi Rima,

Would errors be in 'defaultTrace.0.doc' ?

Regards

Nick

Former Member
0 Kudos

Hi Rime,

We've had a response from our BASIS team...

'I have checked the severity level logging on Dev Portal, it is currently set to FATAL , there are 8 levels in total that it can be set to, by default all Productive systems are set to ERRORS so all ERRORS are displayed but there is no cat for Ja.Netlogging

The levels that can be set are:

ALL,DEBUG,PATH,INFO,WARNING,ERROR,FATAL&NONE'

What categories, locations do they need to add / look for....?

Regards

Nick

rima-sirich
Advisor
Advisor
0 Kudos

Hi Nick,

1. The errors wil be in the last updated defaultX.trc. In order to prevent creating of huge log file, it is splitted to several small log files.

2. You need location "com.sap.portal.dotnet" to be set for ERROR logging level. In order to see Ja.NET logging in the default.trc, you need to configure it in Portal Runtime for .NET configuration page ( in Portal Support Desk ). There is a checkbox "Enable Ja.NET logging" that needs to be checked. After checking it, save settings and restart iViewProcessorService ( in the same configuration page ).

Regards,

Rima.

Former Member
0 Kudos

Hi Rima,

The only error we can find in the log file relating to dot net is....

#

#1.5 #00144FA733FC00D4000057770000159D000467BBA32332D1#1239955500380#com.sapportals.wcm.service.reporting.scheduler.ReportScheduler#sap.com/irj#com.sapportals.wcm.service.reporting.scheduler.ReportScheduler#Guest#0#SAP J2EE Engine JTA Transaction : [66a4720041ffffffd7]#n/a##04958700262411debef800144fa733fc#Thread[ThreadPool.Worker1,5,SAPEngine_Application_Thread[impl:3]_Group]##0#0#Error##Plain###cannot collect scheduled reports to execute#

#1.5 #00144FA733FC007C000000440000159D000467BBA53E4AA5#1239955535710#com.sap.portal.dotnet#sap.com/irj#com.sap.portal.dotnet#Guest#0##n/a##906e2cd0250411dec43300144fa733fc#SAPEngine_Application_Thread[impl:3]_1##0#0#Fatal#1#/System/Server#Java### Problems occured while trying to connect to .NET server##

#1.5 #00144FA733FC007C000000460000159D000467BBA542544F#1239955535965#com.sap.portal.prt.request#sap.com/irj#com.sap.portal.prt.request#Guest#0##n/a##906e2cd0250411dec43300144fa733fc#SAPEngine_Application_Thread[impl:3]_1##0#0#Error#1#/System/Server#Java###PortalComponentSession.getValue() failed

[EXCEPTION]

#1#com.sap.engine.services.servlets_jsp.server.exceptions.InvalidSessionException: Method [getAttribute()] is called in an invalid session.

at com.sap.engine.services.servlets_jsp.server.runtime.client.ApplicationSession.getAttribute(ApplicationSession.java:574)

at com.sapportals.portal.prt.component.PortalComponentSession.getSession(PortalComponentSession.java:66)

at com.sapportals.portal.prt.component.PortalComponentSession.getValue(PortalComponentSession.java:222)

at com.sapportals.portal.prt.component.PortalComponentSession.getValue(PortalComponentSession.java:208)

at com.sapportals.portal.prt.servlets_jsp.server.page.PageContextImpl.getAttribute(PageContextImpl.java:513)

at pagelet._sapportalsjsp_ConfigEditor.subDoContent(_sapportalsjsp_ConfigEditor.java:84)

at pagelet._sapportalsjsp_ConfigEditor.doContent(_sapportalsjsp_ConfigEditor.java:44)

at pagelet._sapportalsjsp_ConfigEditor.service(_sapportalsjsp_ConfigEditor.java:24)

at com.sapportals.portal.prt.core.broker.PortalComponentItemFacade.service(PortalComponentItemFacade.java:360)

at com.sapportals.portal.prt.core.broker.PortalComponentItem.service(PortalComponentItem.java:934)

at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:435)

at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:527)

at com.sapportals.portal.prt.component.AbstractComponentResponse.include(AbstractComponentResponse.java:89)

at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:232)

at com.sapportals.portal.htmlb.page.JSPDynPage.doOutput(JSPDynPage.java:76)

at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:129)

at com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:134)

at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)

at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)

at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)

at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)

at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)

at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:215)

at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:645)

at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)

at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)

at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)

at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:753)

at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:240)

at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:524)

at java.security.AccessController.doPrivileged(Native Method)

at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:407)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.sap.engine.services.servlets_jsp.server.servlet.InvokerServlet.service(InvokerServlet.java:156)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265)

at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)

at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)

at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)

at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)

at java.security.AccessController.doPrivileged(Native Method)

at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:102)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)

We are looking at the default trace file.....

We are simply doing a 'check server'

Regards

Former Member
0 Kudos

Hi Rima,

We have found an error in the error log....

Exception ID:01:13_17/04/09_0003_107611250

[EXCEPTION]

com.sapportals.portal.prt.component.PortalComponentException: Error in service call of Portal Component

Component : com.sap.portal.dotnet.framework.configuration.ConfigEditor

Component class : com.sap.portal.dotnet.framework.configuration.ConfigEditor

User : PDKDEVELOPER

at com.sapportals.portal.prt.core.PortalRequestManager.handlePortalComponentException(PortalRequestManager.java:973)

at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:343)

at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)

at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)

at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:215)

at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:645)

at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)

at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)

at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)

at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:753)

at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:240)

at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:524)

at java.security.AccessController.doPrivileged(Native Method)

at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:407)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.sap.engine.services.servlets_jsp.server.servlet.InvokerServlet.service(InvokerServlet.java:156)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265)

at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)

at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)

at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)

at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)

at java.security.AccessController.doPrivileged(Native Method)

at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:102)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)

Caused by: java.lang.NullPointerException

at com.sap.portal.dotnet.framework.configuration.ConfigEditor$ConfigDyn.doProcessAfterInput(ConfigEditor.java:82)

at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:101)

at com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:134)

at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)

at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)

at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)

... 29 more

rima-sirich
Advisor
Advisor
0 Kudos

Hi Nick,

When you click "Check server", the error message "Problems occured while trying to connect to .NET server" is written to your log. On "Check server" your Portal tries to connect to .NET server. This error means that your Portal could not establish a connection to .NET server. The most probable reason for it are wrong parameters in the Portal Runtime for .NET configuration page in Portal Support Desk. I would advise you ( again ) to check your configuration.

Best Regards,

Rima.

Former Member
0 Kudos

Hi Rima,

We've rechecked our settings.....all seam fine.

We can see the portal talking to the .net runtime using a network monitoring tool.

We can see packets coming in/out on 8050...

The .net runtime seam's to renegotiate a new port with the portal....

I've asked our Sun support to check if they can see anything on the portal side...

or any reason why the Windows PC isn't able to talk to the Sun box

Regards

Nick

rima-sirich
Advisor
Advisor
0 Kudos

Hi Nick,

I had a look on the screenshot.jpg you have attached to the OSS message.

Your .NET Runtime Servers are configured in a following way:

PortalNode = *

Host:Port = vd-bgs-01.salford.gov.uk:9547

Was your Portal Runtime for .NET service configured and started via MMC snap-in on port 9547 ?

Regards,

Rima.

Former Member
0 Kudos

Hi Rima,

No default is 8050, but we've tried changing them to see if it helps...

I've emailed you a screen shot...

Regards

Edited by: Nick Wright on Apr 20, 2009 4:24 PM

Edited by: Nick Wright on Apr 20, 2009 4:51 PM

Former Member
0 Kudos

Hi Rima,

Not sure if this help, we have several development machines, all are able to

connect to a remote SAP portal .net runtime, proving that the portal .net runtime(s)

can talk to each other.

Regards

Nick

Former Member
0 Kudos

Hi,

With the help of Rima, we've managed to resolve the issue...

We changed the file .sapenv_sapdv3.sh (and its C-Shell twin sapenv_sapdv3.csh) in the home directory of the user "epdadm", under which the portal runs.

It appears that these scripts are executed when a process starts under that user ID, and they were over-riding the system defaults set in the kernel of 65536 for rlim_fd_max and 8193 for rlim_fd_cur.

Both of these values are now reset to 4096 by the scripts above.

We changed this value in the scripts to 8193.

This resolved the issue.

Many thanks Rima, you've been most helpful

Regards

Answers (0)