BI Publisher - SSO and IIS
Does anyone happen to know if SSO with the web server as IIS be an issue when trying to use BI Publisher? We are getting an error when trying to log into Publisher with SSO enabled (works fine with RPD Security). I have looked at the documentation and it has a section for updating an Apache file but I can find nothing with using it with IIS.
Ummm, I am not sure how you are using BIP under IIS since according to the [System Requirements and Supported Platforms|http://download.oracle.com/docs/cd/E10415_01/doc/bi.1013/e10417.pdf] PDF BIP is suported under IIS via the Oracle Application Server Proxy Plug-in:
Microsoft IIS is supported as an HTTP server for Oracle Business Intelligence Publisher and Oracle Business Intelligence Office Server via the Oracle Application Server Proxy Plug-in. Oracle Business Intelligence Publisher and Oracle Business Intelligence Office Server require a J2EE Application server*
So you must have OAS installed in your system.
Similar Messages
-
This is a repeat of this post: Java SSO and IIS
Noone answered there.
Hello,
my organization uses Java SSO authentication in Oracle Application Server. Now we want to "expand" SSO so that our IIS applications can benefit from Oracle SSO and user needn't print user name / password again. Is there any way to use Java SSO in IIS? In this project we use Java SSO, not Oracle Identity Management.
Thanks in advanceHi ,
I was installed and configured policy agent successfully.while i am trying to access the application url i am getting following error.
I am using IIS6.0 and access manager 7.1.
Error 2824:15b9918 AuthService: AuthService::processLoginStatus() Exception message=[Application user ID is not valid.] errorCode='107' templateName=login_failed_template.jsp.
2009-03-10 00:03:05.828 Error 2824:15b9918 PolicyEngine: am_policy_evaluate: InternalException in AuthService::processLoginStatus() with error message:Exception message=[Application user ID is not valid.] errorCode='107' templateName=login_failed_template.jsp and code:3
2009-03-10 00:03:05.828 Warning 2824:15b9918 PolicyAgent: am_web_is_access_allowed()(http://fcs-ylwkuzfoz1q.ramesh.com:99/website.html, GET) denying access: status = Access Manager authentication service failure
2009-03-10 00:03:05.828 Debug 2824:15b9918 PolicyAgent: am_web_is_access_allowed(): Successfully logged to remote server for GET action by user unknown user to resource http://fcs-ylwkuzfoz1q.ramesh.com:99/website.html.
2009-03-10 00:03:05.828 Info 2824:15b9918 PolicyAgent: am_web_is_access_allowed()(http://fcs-ylwkuzfoz1q.ramesh.com:99/website.html, GET) returning status: Access Manager authentication service failure.
2009-03-10 00:03:05.828 Debug 2824:15b9918 PolicyAgent: HttpExtensionProc(): status after am_web_is_access_allowed = Access Manager authentication service failure (3)
2009-03-10 00:03:05.828 Error 2824:15b9918 PolicyAgent: HttpExtensionProc(): status: Access Manager authentication service failure (3)
2009-03-10 00:03:05.828 Debug 2824:15b9918 PolicyAgent: OnSendResponse(): HTTP Status code is 500
can any one please help me to resolve this.
Thanks
Ramesh Kumar GV -
Does anyone have advice on how to configure JBoss 7.1.1.Final to successfully enable SSO using IIS 7.5 with integrated windows authentication. This used to be a simple process on CCP 9.3.2 but I've had no luck configuring JBoss 7.1.1.Final to use the SSO. The logs just always say the "LoginId not found for SSO in HttpHeader".
I've successfully setup the redirect from IIS using the isapi filter to connect to the CCP application but have not gotten any further.
I believe the standalone-full.xml file needs to be altered in someway to enable the SSO, any ideas?Hi
We have resolved this issue, this is a known bug with JBoss 7.1.1 where the headers aren't passed through correctly. TAC had provided us with a patched version of the JBoss JAR file to resolve this. -
Hi,
I want to setup an outpund hybrid search for SharePoint 2013 on-premise to SharePoint Online.
But I'm not shure if this works with ADFS SSO.
Has somebody experience with this setup?
Here's my guide which I'm going to use for this installation:
Introduction
In this post I'll show you how to get search results from your SharePoint Online in your SharePoint 2013 on-premise search center.
Requirements
User synchronisation ActiveDirectory to Office 365 with DirSync
DirSync password sync or ADFS SSO
SharePoint Online
SharePoint 2013 on-premise
Enterprise Search service
SharePoint Online Management Shell
Instructions
All configuration will be done either in the Search Administration of the Central Administration or in the PowerShell console of your on-premise SharePoint 2013 server.
Set up Sever to Server Trust
Export certificates
To create a server to server trust we need two certificates.
[certificate name].pfx: In order to replace the STS certificate, the certificate is needed in Personal Information Exchange (PFX) format including the private key.
[certificate name].cer: In order to set up a trust with Office 365 and Windows Azure ACS, the certificate is needed in CER Base64 format.
First launch the Internet Information Services (IIS) Manager
Select your SharePoint web server and double-click Server Certificates
In the Actions pane, click Create Self-Signed Certificate
Enter a name for the certificate and save it with OK
To export the new certificate in the Pfx format select it and click Export in the Actions pane
Fill the fields and click OK Export to: C:\[certificate
name].pfx Password: [password]
Also we need to export the certificate in the CER Base64 format. For that purpose make a right-click on the certificate select it and click on View...
Click the Details tab and then click Copy to File
On the Welcome to the Certificate Export Wizard page, click Next
On the Export Private Key page, click Next
On the Export File Format page, click Base-64 encoded X.509 (.CER), and then click Next.
As file name enter C:\[certificate
name].cer and then click Next
Finish the export
Import the new STS (SharePoint Token Service) certificate
Let's update the certificate on the STS. Configure and run the PowerShell script below on your SharePoint server.
if(-not (Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue)){Add-PSSnapin "Microsoft.SharePoint.PowerShell"}
# set the cerficates paths and password
$PfxCertPath = "c:\[certificate name].pfx"
$PfxCertPassword = "[password]"
$X64CertPath = "c:\[certificate name].cer"
# get the encrypted pfx certificate object
$PfxCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 $PfxCertPath, $PfxCertPassword, 20
# import it
Set-SPSecurityTokenServiceConfig -ImportSigningCertificate $PfxCert
Type Yes when prompted with the following message.
You are about to change the signing certificate for the Security Token Service. Changing the certificate to an invalid, inaccessible or non-existent certificate will cause your SharePoint installation to stop functioning. Refer
to the following article for instructions on how to change this certificate: http://go.microsoft.com/fwlink/?LinkID=178475. Are you
sure, you want to continue?
Restart IIS so STS picks up the new certificate.
& iisreset
& net stop SPTimerV4
& net start SPTimerV4
Now validate the certificate replacement by running several PowerShell commands and compare their outputs.
# set the cerficates paths and password
$PfxCertPath = "c:\[certificate name].pfx"
$PfxCertPassword = "[password]"
# get the encrypted pfx certificate object
New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 $PfxCertPath, $PfxCertPassword, 20
# compare the output above with this output
(Get-SPSecurityTokenServiceConfig).LocalLoginProvider.SigningCertificate
[/code]
## Establish the server to server trust
[code lang="ps"]
if(-not (Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue)){Add-PSSnapin "Microsoft.SharePoint.PowerShell"}
Import-Module MSOnline
Import-Module MSOnlineExtended
# set the cerficates paths and password
$PfxCertPath = "c:\[certificate name].pfx"
$PfxCertPassword = "[password]"
$X64CertPath = "c:\[certificate name].cer"
# set the onpremise domain that you added to Office 365
$SPCN = "sharepoint.domain.com"
# your onpremise SharePoint site url
$SPSite="http://sharepoint"
# don't change this value
$SPOAppID="00000003-0000-0ff1-ce00-000000000000"
# get the encrypted pfx certificate object
$PfxCert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 $PfxCertPath, $PfxCertPassword, 20
# get the raw data
$PfxCertBin = $PfxCert.GetRawCertData()
# create a new certificate object
$X64Cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
# import the base 64 encoded certificate
$X64Cert.Import($X64CertPath)
# get the raw data
$X64CertBin = $X64Cert.GetRawCertData()
# save base 64 string in variable
$CredValue = [System.Convert]::ToBase64String($X64CertBin)
# connect to office 3656
Connect-MsolService
# register the on-premise STS as service principal in Office 365
# add a new service principal
New-MsolServicePrincipalCredential -AppPrincipalId $SPOAppID -Type asymmetric -Usage Verify -Value $CredValue
$MsolServicePrincipal = Get-MsolServicePrincipal -AppPrincipalId $SPOAppID
$SPServicePrincipalNames = $MsolServicePrincipal.ServicePrincipalNames
$SPServicePrincipalNames.Add("$SPOAppID/$SPCN")
Set-MsolServicePrincipal -AppPrincipalId $SPOAppID -ServicePrincipalNames $SPServicePrincipalNames
# get the online name identifier
$MsolCompanyInformationID = (Get-MsolCompanyInformation).ObjectID
$MsolServicePrincipalID = (Get-MsolServicePrincipal -ServicePrincipalName $SPOAppID).ObjectID
$MsolNameIdentifier = "$MsolServicePrincipalID@$MsolCompanyInformationID"
# establish the trust from on-premise with ACS (Azure Control Service)
# add a new authenticatio realm
$SPSite = Get-SPSite $SPSite
$SPAppPrincipal = Register-SPAppPrincipal -site $SPSite.rootweb -nameIdentifier $MsolNameIdentifier -displayName "SharePoint Online"
Set-SPAuthenticationRealm -realm $MsolServicePrincipalID
# register the ACS application proxy and token issuer
New-SPAzureAccessControlServiceApplicationProxy -Name "ACS" -MetadataServiceEndpointUri "https://accounts.accesscontrol.windows.net/metadata/json/1/" -DefaultProxyGroup
New-SPTrustedSecurityTokenIssuer -MetadataEndpoint "https://accounts.accesscontrol.windows.net/metadata/json/1/" -IsTrustBroker -Name "ACS"
Add a new result source
To get search results from SharePoint Online we have to add a new result source. Run the following script in a PowerShell ISE session on your SharePoint 2013 on-premise server. Don't forget to update the settings region
if(-not (Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue)){Add-PSSnapin "Microsoft.SharePoint.PowerShell"}
# region settings
$RemoteSharePointUrl = "http://[example].sharepoint.com"
$ResultSourceName = "SharePoint Online"
$QueryTransform = "{searchTerms}"
$Provier = "SharePoint-Remoteanbieter"
# region settings end
$SPEnterpriseSearchServiceApplication = Get-SPEnterpriseSearchServiceApplication
$FederationManager = New-Object Microsoft.Office.Server.Search.Administration.Query.FederationManager($SPEnterpriseSearchServiceApplication)
$SPEnterpriseSearchOwner = Get-SPEnterpriseSearchOwner -Level Ssa
$ResultSource = $FederationManager.GetSourceByName($ResultSourceName, $SPEnterpriseSearchOwner)
if(!$ResultSource){
Write-Host "Result source does not exist. Creating..."
$ResultSource = $FederationManager.CreateSource($SPEnterpriseSearchOwner)
$ResultSource.Name = $ResultSourceName
$ResultSource.ProviderId = $FederationManager.ListProviders()[$Provier].Id
$ResultSource.ConnectionUrlTemplate = $RemoteSharePointUrl
$ResultSource.CreateQueryTransform($QueryTransform)
$ResultSource.Commit()
Add a new query rule
In the Search Administration click on Query Rules
Select Local SharePoint as Result Source
Click New Query Rule
Enter a Rule name f.g. Search results from SharePoint Online
Expand the Context section
Under Query is performed on these sources click on Add Source
Select your SharePoint Online result source
In the Query Conditions section click on Remove Condition
In the Actions section click on Add Result Block
As title enter Results for "{subjectTerms}" from SharePoint Online
In the Search this Source dropdown select your SharePoint Online result source
Select 3 in the Items dropdown
Expand the Settings section and select "More" link goes to the following URL
In the box below enter this Url https://[example].sharepoint.com/search/pages/results.aspx?k={subjectTerms}
Select This block is always shown above core results and click the OK button
Save the new query ruleHi Janik,
According to your description, my understanding is that you want to display hybrid search results in SharePoint Server 2013.
For achieving your demand, please have a look at the article:
http://technet.microsoft.com/en-us/library/dn197173(v=office.15).aspx
If you are using single sign-on (SSO) authentication, it is important to test hybrid Search functionality by using federated user accounts. Native Office 365 user accounts and Active Directory Domain Services
(AD DS) accounts that are not federated are not recognized by both directory services. Therefore, they cannot authenticate using SSO, and cannot be granted permissions to resources in both deployments. For more information, see Accounts
needed for hybrid configuration and testing.
Best Regards,
Eric
Eric Tao
TechNet Community Support -
SSO and portal timeout -- other bug?
...this is very probably related to the other post talking about SSO and portal timeout...
I am having another weird issue with dotnet portlets that uses inline refresh (done automatically by dotnet accelerator) and SSO.
When you let the portal session expire, and then click on a button/link within a portlet (hence generate an inline refresh gatewayed request), the full portal window (header/footer etc...) appears within the portlet, instead of the portlet content alone.
I did some http traces (see below) and it seems the problem is due to the windows SSOLogin.aspx (we are using windows auth SSO) not taking the requested portlet gatewayed request url as a post login redirect info... but taking instead the current page url (which is wrong)
Thus, after the gatewayed portlet request is successfully authenticated by the SSOLogin.aspx component, it is automatically redirected to the wrong urll...making the full portal page refresh into the portlet.
So my question is: have anyone already seen such behavior? And has anything been done to fix this?
It really seems like a bug with the SSO servlet...but maybe i am doing something wrong...Just want to have your thoughts on this.
Thanks,
Fabien
============================================================================================
HTTP Trace:
POST 302 Redirect to /portal/sso/SSOLogin.aspx?in_hi_userid=15046&space=CommunityPage&parentid=1&cached=false&control=SetCommunity&PageID=0&CommunityID=205&parentname=Login http://your.portal.com/portal/server.pt/gateway/PTARGS_0_15046_362_205_0_43/http%3B/your.portletserver.com/yourapp/youraspx.aspx
GET 401 text/html http://your.portal.com/portal/sso/SSOLogin.aspx?in_hi_userid=15046&space=CommunityPage&parentid=1&cached=false&control=SetCommunity&PageID=0&CommunityID=205&parentname=Login
GET 401 text/html http://your.portal.com/portal/sso/SSOLogin.aspx?in_hi_userid=15046&space=CommunityPage&parentid=1&cached=false&control=SetCommunity&PageID=0&CommunityID=205&parentname=Login
GET 302 Redirect to http://your.portal.com/portal/server.pt?in_hi_userid=15046&space=CommunityPage&parentid=1&cached=false&control=SetCommunity&PageID=0&CommunityID=205&parentname=Login http://your.portal.com/portal/sso/SSOLogin.aspx?in_hi_userid=15046&space=CommunityPage&parentid=1&cached=false&control=SetCommunity&PageID=0&CommunityID=205&parentname=Login
GET 200 text/html; charset=utf-8 http://your.portal.com/portal/server.pt?in_hi_userid=15046&space=CommunityPage&parentid=1&cached=false&control=SetCommunity&PageID=0&CommunityID=205&parentname=LoginI have this happen in v6.0 sp1. We have worked around the problem with a bit of work and synchronization of settings. Below, I've outlined how we've worked around the problem (which is indeed a problem that should be fixed). Also, if you have a load balancer, you'll need to set your session timeout on the load balancer to a bit more than the refresh rate that you set for your communities and My Pages.
Resolving the Portlet Timeout / Refresh Problem in ALUI Portal_
Problem: Users occasionally receive the portal page within a portlet error
Cause: The root cause has not been determined; however it appears that the primary event that exhibits the behavior is when a teammember’s session has expired on the portal server and they then utilize a .NET form-based portlet which refreshes in place. Because we are using WIA SSO to enable automatic logins to the portal, it makes the error seem to occur randomly.
Resolution:
The workaround solution is to – 1) increase the portal session timeout on the portal web servers from the default 20min to 4 hours, and 2) set the MyPage refresh interval setting for all portal users to 3 hours. The setting name is a bit of a misnomer, as it will actually refresh the entire portal page automatically if the user is idle on either a My Page or a Community Page, as these are the only two places that portlets reside.
Increasing the portal session timeout:
The portal session timeout is controlled in two places, and both settings should match. On the portal virtual directory in IIS, edit the configuration and increase the timeout setting to 240 (minutes). Then, edit the portal application’s web.config file (d:\portal\ptportal\6.0\webapp\portal\web\) and increase the sessionState Timeout variable to 240. Editting the config file will require you to restart the services before you see the change.
Initial setting of the MyPage refresh interval:
The initial setting will need to be done by a SQL script in order to apply it to all existing users. The Default Profile should also be updated so that all new user synched from AD will have this setting applied automatically.
/* Delete refresh interval settings for all users first so that there are no conflicts on the inserts */
DELETE FROM portaldbuser.ptprefs WHERE prefname = 'intMyPageRefreshRate'
/* Insert desired page refresh setting for all users */
INSERT INTO portaldbuser.ptprefs (userid,gadgetid,prefclassid,prefobjectid,prefname,prefvaluetype,prefvalue,pagenumber) SELECT objectid,0,0,0,'intMyPageRefreshRate',3,180,0 FROM portaldbuser.ptusers
From Administration, access the Default Profiles utility. Check the Default Profile entry and click on the Edit Profile Layout link. Click on the My Account link in the Portal Settings portlet and then on the Display Options link on the next page. In the Page and Portlet Settings, update the Your My Page will be updated: setting to 4 hours. Click Finish twice to return to Administration.
Updating the MyPage refresh interval:
To update the setting just modify the insert portion of the SQL script. Change the prefvalue number (180) to the desired timeout in minutes and rerun both statements of the script.
The Default Profile should be also be modified per the instructions above.
I hope this helps...
-tom -
Question about publishing Calendar and URLs
Hi everyone, have a question that hopefully knows the answer too. I have been researching on how to publish individual user calendars to external users.
I have seem to come across 2 different ways to do this
1) is to right-click on my calendar in OWA, then I select the external recipient and it emails the recipient a long url similar to:
http://webmail.mydomain.com/owa/calendar/[email protected]/4d9f8b52769b4ddca3e51f6f82d01b6f1902995877095312719/S-1-8-2306188436-3125773453-2945785077-3615357645/reachcalendar.html
2) Within Outlook 2013, I click on "publish calendar" and it takes me to an ECP url for my exchange server where I can select how many months I want to share, the permission they can see, etc... and then it provides me at the bottom with two links
like:
http://webmail.mydomain.com/owa/calendar/[email protected]/Calendar/calendar.html
My question is what are the differences between these two methods and also, both of these urls will NOT work unless I change them to HTTPS instead, how I can modify the links that get emailed out? I did see for the 2nd method above I can set it using the
"PublishedCalendarUrl" in Powershell, but that is impractical for a lot of users.
thanks!Hi BMIG,
Please re-start IIS for testing.
If not working unfortunately, please use IIS Manager to simplify the OWA url and force redirection to SSL.
Steps as below:
1. Start IIS Manager.
2. Expand the local computer, expand Sites, and then click
Default Web Site.
3. At the bottom of the Default Web Site Home pane, click Features View if this option isn't already selected.
4. In the IIS section, double-click HTTP Redirect.
5. Select the Redirect requests to this destination check box.
6. Type the absolute path of the /owa virtual directory. For example, type
https://mail.contoso.com/owa.
7. Under Redirect Behavior, select the Only redirect requests to content in this directory (not subdirectories) check box.
8. In the Status code list, click Found (302).
9. In the Actions pane, click Apply.
10. Click Default Web Site.
11. In the Default Web Site Home pane, double-click SSL Settings.
12. In SSL Settings, clear Require SSL.
13. For the new settings to take effect, open a Command Prompt window, and then type
iisreset /noforce to restart IIS.
Details in the following article:
Simplify the Outlook Web App URL
http://technet.microsoft.com/en-us/library/aa998359(v=exchg.150).aspx
Hope it is helpful
Thanks
Mavis
Mavis Huang
TechNet Community Support -
SSO and how to Managing User Roles/Privileges with Forms using Oracle db
We are in the process of implementing Oracle Application Server SSO with our custom Forms application using Oracle database -- all 10.2.0.1.0 version.
In our Forms Applications, we have about a dozen roles we have assigned to various users. We need to identify each user using our Forms because we are using the GLOBAL USER throughout the application.
Questions:
-- Do we have to create users/passwords in both OID and application database?
-- Is there a way to easily manage the user and passwords between SSO and Forms App/database in one place? For example, how does a user change their password once, but actually change it in both the database and SSO?
Any advice and/or direction would be greatly appreciated.
Thank you,
Mika
Edited by: user11846198 on Sep 1, 2009 1:41 PM
Edited by: user11846198 on Sep 1, 2009 1:53 PMYes, you can have global roles in the DB and assign this roles to specific OID users, and the will heritage the privilages, you can do this using Oracle Identity Management Web Tool http://hostname:7777/oiddas is not complicated.
Greetings. -
10g - how to configure sso with iis-
hi, experts, I have followed Oracle® Business Intelligence Enterprise Edition Deployment Guide to configure SSO with IIS.
but I always meet this message.
Not Logged In
You are not currently logged in to the Oracle BI Server.
If you have already logged in, your connection might have timed out, or a communications or server error may have occurred
what steps are missing?
how to check?hi, experts,
I checked C:\OracleBIData\web\log\sawlog0.log on the obi server (windows server 2003 standard).
at Thu Feb 17 14:48:46 2011 , I logined OBI on another machine (not via the browser on the obi server).
however, the log shows the login user is the administrator of the obiserver (obiserver\administrator ).
any setup on IIS are wrong? thank you very much!
=========================================================================================
Running job 'MinutelyMonitor' took 7422 milliseconds, 12.3% of job's frequency (60 seconds).
Type: Error
Severity: 40
Time: Thu Feb 17 14:48:46 2011
File: project/webodbcaccess/odbcconnectionimpl.cpp Line: 371
Properties: ConnId-1,1;ThreadID-1796
Location:
saw.odbc.connection.open
saw.connectionPool.getConnection
saw.subsystem.security.checkAuthenticationImpl
saw.threadPool
saw.threads
Odbc driver returned an error (SQLDriverConnectW).
State: 08004. Code: 10018. [NQODBC] [SQL_STATE: 08004] [nQSError: 10018] Access for the requested connection is refused.
[nQSError: 43001] Authentication failed for obiserver\administrator in repository Star: invalid user/password. (08004)
Type: Error
Severity: 42
Time: Thu Feb 17 14:48:46 2011
File: project/webconnect/connection.cpp Line: 276
Properties: ThreadID-1796
Location:
saw.connectionPool.getConnection
saw.subsystem.security.checkAuthenticationImpl
saw.threadPool
saw.threads
Authentication Failure.
Odbc driver returned an error (SQLDriverConnectW).
--------------------------------------- -
Hello folks,
Due to my inexperience with PS6, I'm looking for some high-level outline that will help me look in the right places and understand things better here.
I have an external application that requires authentication via a web form (or by attaching the username and password on the URL as parameters).
What I want to do is have a channel of this application and utilize information from the SSO mechanism to redirect the request to that remote app and provide the credentials for a transparent login.
From what I understand this can be done by having a servlet in that channel to retrieve the credentials of the user for that remote application from the SSO and then redirect to the external application, attaching the credentials to the URL.
Is the above correct? I would appreciate any pointers or considerations since my experience with PS is minimal.
Thanks in advance,
ManosI don't see a way to that servlet to retrieve a password for the user - it's not stored in the session.
There are following options:
1. OpenText LiveLink way: You have some "hidden" password for every user (based on user's ID and a shared key) known only to your server and this servlet. Servlet will supply this password.
2. Normal way - web server: Implement login module to this application, which will trust REMOTE_USER variable provided by the agent on the web server.
3. Normal way - standalone app: Implement login module to this application which will validate DSAME session cookie on the DSAME server. You can use example code in the SUNWam/samples/ of your server. -
Inserting a link to BI Publisher report and passing the dashboard prompts
I have an answers dashboard where there are various prompts (say P1, P2, P3, P4 -all these are date prompts )and various reports.
These Prompts are stored as Presentation variable say var1, var2, var3, var4.
I need to insert a Link on this page to a BI Publisher Report. BI Publisher report also has some prompts say D1, D2, D3 , D4, D5, D6
The link should take the values from the prompts of this page and open the BI Publisher report with D1= value of Prompt P1,
D2= value of prompt P2, D3= value of Prompt P3, and D4= value of Prompt P4.
I was easily able to use an action link -> "Navigate to Web Page" option. I gave the URL for this BI Publisher report and clicking on that link takes me to the report.
But I am still figuring out out to send the values of the prompts.
The BI Publisher Report is :
- built from an RTF template.
- uses a SQL Query with Bind variables to get the value of its prompts D1, D2, D3, D4, D5, D6.
- Suppose D1 is bind variable :date1, D2 is bind variable :date2, D3 is bind variable :date3 and D4 is bind variable :dat4.
So my first try was to append the value of bind variable to the URL
https://xxname.server.com/analytics/saw.dll?bipublisherEntry&Action=open&itemType=.xdo&bipPath=%2FSurvey%2FPhoneCount%20Record.xdo&path=%2Fshared%2FSurvey%2FPhoneCount%20Record.xdo.xdo&date1=var1
Can someone suggest the steps I need to take to make this work.
ThanksHi, I am facing the same issue (OBIEE 11g version0
Please let me know if you found any solution or workaround for this?
Thanks!! -
Sample JAVA Mobile Server Publish code, and technical questions
Dear Oracle technical representative, or user:
I need to programmatically create, and remove publications using the pure JAVA classes of Consolidator, ConsolidatorManager, and ResourceManager for the Mobile Server in OracleLite 9i Release 5.0.1. On the creation side I have managed to get the example found in the directory OraLite501\Mobile\Server\Sample\Sample11 functioning using my installation parameters. I had a very difficult time of it because (1) the sample11 code fails to open an jdbc connection to the Mobile Server Repository Schema with the function Consolidator.OpenConnection, and (2) the ResourceManager function openConnection will not work unless the Webtogo.ora file is in the current working directory. The ConsolidatorManager function OpenConnection may also not work unless the Webtogo.ora file is in the current working directory, but I did test the hypothesis. Both of these problems need to be addressed in the sample11 code, and documentation to save other software developers from wasting hours of their valuable time. See line 223, 386, and 448 in the Publish.Java code that follows this problem description.
With the above two problems resolved, I can now programmatically create publications, but no hints on how to programmatically remove a publication exist in the documentation. The application I am developing will require the dynamic creation, and removal of publications. Also, when developing applications the complete removal of a publication is absolutely necessary when you have botched a publication. Thus my first question is What sequence of ResourceManager, and ConsolidatorManager function calls will completely remove a Publication?.
I also have two issues remaining with the code that I have so far developed. These issues will most likely be resolved, when I obtain instructions on how to completely remove a publication, and associated users. But, perhaps not. Referencing the Publish.java file that follows this problem description,
1. The ResourceManager function dropUser does not drop a user. See my comments, and code beginning at line 277 in Publish.java. Do I need to de-instantiate all subscriptions, and unsubscribe all subscription users before calling this function.? I think, I tried the de-instantiate, unsubscribe sequence without success, but in the confusion I may not have made the try.
2. How do I get rid of an index created with the ConsolidatorManager function DropPublicationItemIndex?. My comments on this problem begin at line 522 in Publish.java. For some reason the DropPublicationItemIndex function call made below line 448 does not work. What function calls are required prior to calling the DropPublicationItemIndex function?
Throughout the Publish.java code, I have made comments about some of the problems that I have had in getting the sample11 code working for my installation parameters. I think these comments should help the programmers maintaining the ResourceManager, and ConsolidatorManager code improve the stability of the programs. Please pass these comments, and attached files to the appropriate individuals,
if you are in a position to do so.
The other files that follow the Publish.java code are
1. Compile.bat - Compiles Publish.java using j2sdk1.4.0.
2. Run.bat - Executes Publish using \ j2sdk1.4.0\jre\server\jvm.dll.
3. Webtogo.ora
4. tnsnames.ora for the Mobile Server.
5. tnsnames.ora for the Database.
Feel free to access my server if you need to do so in resolving my problems. The parameters you will need to gain access can be found at the top of Publish.java, and in the included *.ora files.
Thanks,
Thomas G. Matney
[email protected]
(662)325-2791
//Start of Publish.java code
// Oracle HTTP Server URL = http://yggdrasill.cfr.msstate.edu:7778
// = http://130.18.168.225:7778
// Mobile Server URL = http://yggdrasill.cfr.msstate.edu/webtogo/startup
// = http://130.18.168.225/webtogo/startup
// Mobile Server Control Center URL = http://yggdrasill.cfr.msstate.edu/webtogo
// = http://130.18.168.225/webtogo
// Mobile Server Control Center URL = http://yggdrasill.cfr.msstate.edu/webtogo
// = http://130.18.168.225/webtogo
// Mobile Server Control Center username = administrator
// Mobile Server Control Center password = admin
// Mobile Server URL = http://yggdrasill.cfr.msstate.edu/webtogo/startup
// = http://130.18.168.225/webtogo/startup
// Mobile administrator username = fiafield // Schema FIAFIELD on FIA.CFR.MSSTATE.EDU
// Mobile administrator password = fiafield // Username and password are the same
import java.sql.SQLException;
import java.sql.*;
import oracle.lite.sync.Consolidator;
import oracle.lite.sync.ConsolidatorManager;
import oracle.mobile.admin.ResourceManager;
import oracle.mobile.admin.ResException;
import oracle.sql.*;
import oracle.jdbc.*;
import oracle.mobile.admin.*;
public class Publish
// Schema names and usernames are not case sensitive.
// UN fiafield = FIAFIELD
// SCHEMA fiafield = FIAFIELD
// Schema name/Username, and password used on creation of Mobile Repository
static String CONS_SCHEMA = "fiafield";
static String DEFAULT_PASSWORD = "fiafield";
static String admin_jdbc_url = "jdbc:oracle:oci8:@WEBTOGO.WORLD";
static String thin_jdbc_url =
"jdbc:oracle:thin:@YGGDRASILL:1521:FIA.YGGDRASILL.CFR.MSSTATE.EDU";
static String Publication;
static String CreateTreeTableShortNames =
"CREATE TABLE FIAFIELD.ZMTR1TBL("
+ "id FLOAT,"
+ "subp FLOAT,"
+ "rnum FLOAT,"
+ "st FLOAT,"
+ "unit FLOAT,"
+ "cnty FLOAT,"
+ "plot FLOAT,"
+ "cyc FLOAT,"
+ "scyc FLOAT,"
+ "tree FLOAT,"
+ "ncpt FLOAT NULL,"
+ "dist FLOAT NULL,"
+ "diam FLOAT NULL,"
+ "dmht FLOAT NULL,"
+ "dmck FLOAT NULL,"
+ "spec FLOAT NULL,"
+ "lang FLOAT NULL,"
+ "nctc FLOAT NULL,"
+ "stat FLOAT NULL,"
+ "util FLOAT NULL,"
+ "deca FLOAT NULL,"
+ "crat FLOAT NULL,"
+ "ccls FLOAT NULL,"
+ "az FLOAT NULL,"
+ "cond FLOAT NULL,"
+ "tlen FLOAT NULL,"
+ "alen FLOAT NULL,"
+ "lmet FLOAT NULL,"
+ "nctg FLOAT NULL,"
+ "rcul FLOAT NULL,"
+ "ncpd FLOAT NULL,"
+ "dead FLOAT NULL,"
+ "mor FLOAT NULL,"
+ "modm FLOAT NULL,"
+ "dml1 FLOAT NULL,"
+ "dmt1 FLOAT NULL,"
+ "dms1 FLOAT NULL,"
+ "dma1 FLOAT NULL,"
+ "dml2 FLOAT NULL,"
+ "dmt2 FLOAT NULL,"
+ "dms2 FLOAT NULL,"
+ "dma2 FLOAT NULL,"
+ "dml3 FLOAT NULL,"
+ "dmt3 FLOAT NULL,"
+ "dms3 FLOAT NULL,"
+ "dma3 FLOAT NULL,"
+ "dbtr FLOAT NULL,"
+ "dbsp FLOAT NULL,"
+ "nxtn FLOAT NULL,"
+ "dbds FLOAT NULL,"
+ "dbaz FLOAT NULL,"
+ "psta FLOAT NULL,"
+ "fiat FLOAT NULL,"
+ "fhmt FLOAT NULL"
+ ")";
static String CreateTreeTableLongNames =
"CREATE TABLE FIAFIELD.ZMTR1TBL("
+ "ID FLOAT,"
+ "SUBPLOT FLOAT,"
+ "RECORD_NUMBER FLOAT,"
+ "STATE FLOAT,"
+ "UNIT FLOAT,"
+ "COUNTY FLOAT,"
+ "PLOT FLOAT,"
+ "CYCLE FLOAT,"
+ "SUBCYCLE FLOAT,"
+ "TREE FLOAT,"
+ "NC_PLOT_TYPE FLOAT,"
+ "DISTANCE FLOAT NULL,"
+ "DIAMETER FLOAT NULL,"
+ "DIAMETER_HEIGHT FLOAT NULL,"
+ "DIAMETER_CHECK FLOAT NULL,"
+ "SPECIES FLOAT NULL,"
+ "LEAN_ANGLE FLOAT NULL,"
+ "NC_TREE_CLASS FLOAT NULL,"
+ "STATUS FLOAT NULL,"
+ "UTILIZATION FLOAT NULL,"
+ "DECAY FLOAT NULL,"
+ "CROWN_RATIO FLOAT NULL,"
+ "CROWN_CLASS FLOAT NULL,"
+ "AZIMUTH FLOAT NULL,"
+ "CONDITION FLOAT NULL,"
+ "TOTAL_LENGTH FLOAT NULL,"
+ "ACTUAL_LENGTH FLOAT NULL,"
+ "LENGTH_METHOD FLOAT NULL,"
+ "NC_TREE_GRADE FLOAT NULL,"
+ "ROTTEN_CULL FLOAT NULL,"
+ "NC_PREVIOUS_DBH FLOAT NULL,"
+ "CAUSE_OF_DEATH FLOAT NULL,"
+ "MORTALITY_YEAR FLOAT NULL,"
+ "MO_DAMAGE FLOAT NULL,"
+ "DAMAGE_LOCATION1 FLOAT NULL,"
+ "DAMAGE_TYPE1 FLOAT NULL,"
+ "DAMAGE_SEVERITY1 FLOAT NULL,"
+ "NC_DAMAGE_AGENT1 FLOAT NULL,"
+ "DAMAGE_LOCATION2 FLOAT NULL,"
+ "DAMAGE_TYPE2 FLOAT NULL,"
+ "DAMAGE_SEVERITY2 FLOAT NULL,"
+ "NC_DAMAGE_AGENT2 FLOAT NULL,"
+ "DAMAGE_LOCATION3 FLOAT NULL,"
+ "DAMAGE_TYPE3 FLOAT NULL,"
+ "DAMAGE_SEVERITY3 FLOAT NULL,"
+ "NC_DAMAGE_AGENT3 FLOAT NULL,"
+ "DB_TREE FLOAT NULL,"
+ "DB_SPECIES FLOAT NULL,"
+ "NEXT_NUMBER FLOAT NULL,"
+ "DB_DISTANCE FLOAT NULL,"
+ "DB_AZIMUTH FLOAT NULL,"
+ "PREVIOUS_STATUS FLOAT NULL,"
+ "FIA_TREE_NUMBER FLOAT NULL,"
+ "FHM_TREE FLOAT NULL"
+ ")";
public static void main(String argv[]) throws Throwable
// Publish - an OKAPI sample
if(argv.length == 2)
CONS_SCHEMA = argv[0] ;
DEFAULT_PASSWORD = argv[1] ;
//create required tables using standard jdbc
//DriverManager.registerDriver ((Driver)Class.forName ("oracle.jdbc.driver.OracleDriver").newInstance ());
DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
Connection c = null;
Statement s = null;
try
// Open connection to Mobile Repositoty/FIAFIELD schema as SYSTEM.
// Need the ability to grant resources, and connection to Mobile Repository user
//c = DriverManager.getConnection ("jdbc:oracle:oci8:@WEBTOGO.WORLD", "SYSTEM", "phwphw" );
// Remote connection. See attached webtogo.ora.
c = DriverManager.getConnection ("jdbc:oracle:oci8:@WEBTOGO.WORLD.YGG",
"SYSTEM", "phwphw");
s = c.createStatement ();
try
s.executeUpdate("DROP table FIAFIELD.ZMTR1TBL");
catch (SQLException ee)
ee.printStackTrace ();
try
s.executeUpdate(CreateTreeTableShortNames);
catch (SQLException ee)
ee.printStackTrace ();
try
s.executeUpdate("alter table FIAFIELD.ZMTR1TBL add constraint"
+" zmtr1tbl_pk primary key(subp, tree)");
catch (SQLException ee)
ee.printStackTrace ();
// Line 223 // create consolidator publications.
try
// *****!!!!! Unless the Webtogo.ora file is in the current working
// directory the connection is not made. This version of the resource
// manager must be looking for the file in the old 8i Mobile default
// directory. This is a definite problem. If the code was working, the
// addition of the webtogo.ora should have affect on the functionality
// of the code.
// The connection is made to the Mobile Server. At least no exceptions
// are thrown, provided the webtogo.ora is in the current working
// directory.
//oracle.mobile.admin.ResourceManager.openConnection(CONS_SCHEMA, DEFAULT_PASSWORD);
// I tried making a direct connect to possibly avoid needing to have the
// webtogo.ora file in the current directory. The direct coonect did not work.
// You can quickly convince yourself that the webtogo.ora file must
// be in the current working directory, by running the code with and
// without the webtogo.ora in the current working directory.
// The directory OraLiteHome\Mobile\Server\bin is in the PATH after
// after installation but the extension .ora is not in PATHEXT. The
// OraLite installer should put .ora in PATHEXT. I tried adding .ora
// to the PATHEXT, but it still could not find thw webtogo.ora file,
// and it should have. What is going on? I am a bit rusty on DOS so
// I may not have thing right.
// OraLiteHome\Mobile\Server\bin is the residing directory for
// the functional copy of the webtogo.ora file.
oracle.mobile.admin.ResourceManager.openConnection(
CONS_SCHEMA,
DEFAULT_PASSWORD,
"jdbc:oracle:oci8:@WEBTOGO.WORLD");
catch(ResException ee)
ee.printStackTrace (); // NULL Pointer Exception?
// The Mobile user is created, and then the function throws a resource exception.
// This is a serious problem with the code. One would assume that the user
// is not created if and exception is thrown.
// This appears to be a bug in the createUser code. The function should return
// false if the user is not created, and handle, or not throw the exception.
// The function always returns false. It does return true when a user is created
// because it throws an exception.
boolean bIsCreated;
System.out.println("Begin of why is ResourceManager not dropping users?");
// Line 277
try
// The dropUser function will not drop a user. I have tested the function
// by creating the user ZMPT1UA in the Mobile Server Control Center
// http://Yggdrasill.cfr.msstate.edu/webtogo
// so I know that the user exist.
// This function throws a ResException but it is not declared correctly
// since you cannot trap the exception as a ResException. It always tells
// me the view does not exist. What steps are required to get the function
// to work? What function calls need to be made prior to calling the dropUser
// function.
oracle.mobile.admin.ResourceManager.dropUser("ZMPT1UA");
catch (Throwable ee)
ee.printStackTrace (); // NULL Pointer Exception?
System.out.println("End of why is ResourceManager not dropping users?");
try
bIsCreated = oracle.mobile.admin.ResourceManager.createUser(
"ZMPT1UA",
DEFAULT_PASSWORD,
"ZMPT1UA", "S");
catch (Throwable ee)
ee.printStackTrace (); // Ignore exception
// Obsolete or depreciated function, according to documentation?
oracle.mobile.admin.ResourceManager.commitTransaction();
// Create CONS_SCHEMA user on the database with the same username, and
// password as the user on the Mobile Server side. This is why the
// DriverManager connection was made as SYSTEM/phwphw.
// Grant ALL to repository, and user on replicated database
// On the database side there is a user with un = fiafield,
// and pw = fiafield, which is the same as the Mobile Repository
// schema name/password pair fiafield/fiafield. Can this duality
// create a problem? Probably not.
// Need SYSTEM ADMIN privilages for the next two steps, and that is
// why the coonection was established as SYSTEM/phwphw.
// Make user, and grants for Publish to user CONS_SCHEMA, and ZMPT1UA
System.out.println("Pargress point D");
try
s.execute("Create user " + "ZMPT1UA" + " identified by " + DEFAULT_PASSWORD);
catch (SQLException ee)
ee.printStackTrace (); // ignore
try
s.execute("GRANT ALL ON FIAFIELD.ZMTR1TBL to " + CONS_SCHEMA + " WITH GRANT OPTION");
catch (SQLException ee)
ee.printStackTrace (); // ignore
try
s.execute("GRANT ALL ON FIAFIELD.ZMTR1TBL to " + "ZMPT1UA" + " WITH GRANT OPTION");
catch (SQLException ee)
ee.printStackTrace (); // ignore
/* This code is not needed to test the code
// Insert items into table FIAFIELD.ZMTR1TBL from FIAFIELD.HUSKY_TREE
String Statement =
"INSERT INTO FIAFIELD.ZMTR1TBL SELECT * from FIAFIELD.HUSKY_TREE WHERE PLOT = 1";
try
s.execute(Statement);
catch (SQLException ee)
System.out.println("FIAFIELD.HUSKY_TREE was not inserted into FIAFIELD.ZMTR1TBL");
ee.printStackTrace (); // ignore
c.commit ();
catch (SQLException ee)
ee.printStackTrace ();
finally
if (s!= null) try {s.close ();}catch (SQLException e1){}
if (c!= null) try {c.close ();}catch (SQLException e2){}
// The Consolidator class is not thread safe, and I will eventually
// need thread safety. The ConsolidatorManage class is thread safe.
//Consolidator ConsolidatorXX = new Consolidator();
ConsolidatorManager ConsolidatorXX = new ConsolidatorManager();
// Line 386
// Try opening a connection. Sample11 does not open a connection, but it seems
// like a logical first thing to do.
// At least with this connection the DropPublication, and AddPublication functions
// appear to work, or at least they do not throw exceptions. The DropPublication
// throws an exception if a publication does not exist? I tested this and indeed
// if I call the DropPublication function, and do not create the Publication again
// when I reenter the program the DropPublication function throws an exception, and
// produces the correct error message(The publication does not exist). There is hope.
// It is very disturbing that the program fails unless the webtogo.ora file is not
// in the current working directory. Because the OpenConnection functions of both
// the ResourceManager, and ConsolidatorManager both appear to need access to the
// webtogo.ora file, and they are finding them in the current directory, the
// logical conclusion is that both of the classes are attempting to open the
// webtogo.ora with the relative path webtogo.ora, and not the absolute path
// OraHomeLite/Mobile/Server/Bin/webtogo.ora. As this has to be the case, why
// is this very important fact not in the documentation? Or, am I wrong?
Connection conn = null;
try
//ConsolidatorXX.OpenConnection(CONS_SCHEMA,
//DEFAULT_PASSWORD);
//ConsolidatorXX.OpenConnection(CONS_SCHEMA,
//DEFAULT_PASSWORD,
//"jdbc:oracle:oci8:@WEBTOGO.WORLD");
conn = DriverManager.getConnection
("jdbc:oracle:oci8:@WEBTOGO.WORLD",
CONS_SCHEMA,DEFAULT_PASSWORD);
//conn = DriverManager.getConnection
//("jdbc:oracle:oci8:@WEBTOGO.WORLD",
//"SYSTEM","phwphw");
ConsolidatorXX.OpenConnection(conn);
catch (Throwable e)
e.printStackTrace(); //ignore error
// Publication name
Publication = "ZMTR1PUB";
try
ConsolidatorXX.DeinstantiateSubscription(Publication, "ZMPT1UA");
catch (Throwable e)
System.out.println("Could not Deinstantiate Subscription ZMPT1UA");
e.printStackTrace(); //ignore error
// Line 448
// There is no Consolidator.OpenConnection in the orginal sample11.java code.
// Why?. It appears to be neccessary. The only way I can make the sample11 code
// or this program work is to open a jdbc connection with the Consolidator.OpenConnection
// function. I assume that somehow the Consolidator.OpenConnection function was
// deleted from sample11.java.
// This try to drop a publication index does not work, because when I try
// to recreate the index in the following code it warns me that I have a
// bad column name for the index. So it thinks the index still exist.
// Why?. How do I get rid of the index?
try
ConsolidatorXX.DropPublicationItemIndex("ZMTR1IX1");
catch (Throwable e)
e.printStackTrace(); //ignore error
try
ConsolidatorXX.DropPublicationItem("ZMTR1ITM");
catch (Throwable e)
e.printStackTrace(); //ignore error
try
ConsolidatorXX.DropPublication(Publication);
catch (Throwable e)
e.printStackTrace(); //ignore error
try
//ConsolidatorXX.CreatePublication(Publication, Consolidator.OKPI_CREATOR_ID,
//"zMTR1.%s", null);
ConsolidatorXX.CreatePublication(Publication, Consolidator.OKAPI_WINCE,
"zMTR1.%s", null);
catch (Throwable e)
e.printStackTrace(); //ignore error
try
ConsolidatorXX.DropPublicationItemIndex("ZMTR1IX1");
catch (Throwable e)
e.printStackTrace(); //ignore error
try
ConsolidatorXX.CreatePublicationItem("ZMTR1ITM","FIAFIELD","ZMTR1TBL", "F",
"SELECT * FROM FIAFIELD.ZMTR1TBL", null, null);
catch (Throwable e)
e.printStackTrace();
System.out.println("Begin of how can drop this index and get rid of the warning?");
// Line 522
// I defined the index ZMTR1IX1 originally on the variable subp, and did not get
// any warning. I then changed the index variable for the index to id, and started
// receiving the warning to check the index column for typographical errors. Even
// if I change the index variable back to subp, I continue to receive the warning.
// How do I get rid of the index and the warning, so I can recreate the index for
// another variable? I quess the real question is "How to I completely remove a
// publication, and all of its parts so I can start over?
try
ConsolidatorXX.CreatePublicationItemIndex(
"ZMTR1IX1", "ZMTR1ITM", "I", "id");
catch (Throwable e)
e.printStackTrace ();
System.out.println("End of how can drop this index and get rid of the warning?");
try
ConsolidatorXX.AddPublicationItem(
Publication, "ZMTR1ITM", null, null, "S", null, null);
catch (Throwable e)
e.printStackTrace ();
try
ConsolidatorXX.CreateSubscription(Publication, "ZMPT1UA");
catch (Throwable e)
e.printStackTrace ();
try
ConsolidatorXX.InstantiateSubscription(Publication, "ZMPT1UA");
catch (Throwable e)
e.printStackTrace ();
try
ConsolidatorXX.CloseConnection();
if(conn != null)
conn.close();
catch (Throwable e)
e.printStackTrace(); //ignore error
// Obsolete or depreciated function, according to documentation?
oracle.mobile.admin.ResourceManager.commitTransaction();
oracle.mobile.admin.ResourceManager.closeConnection();
End of Publish.java code
Begin Compile.bat
set CLASSPATH = .;D:\jdk1.4.0\lib\tools.jar;D:\OraLite501\MOBILE\classes\CONSOLIDATOR.JAR;D:\OraLite501\MOBILE\SERVER\BIN\WEBTOGO.JAR;D:\OraLite501\jdbc\lib\classes12.zip;D:\OraLite501\MOBILE\classes\classgen.jar;D:\OraLite501\MOBILE\classes\servlet.jar;D:\OraLite501\MOBILE\CLASSES\OLITE40.JAR
set PATH= d:\jdk1.4.0\jre\bin\server;d:\jdk1.4.0\bin;D:\OraLite501\bin;D:\OraLite501\Mobile\Server\bin;D:\oracle\ora92\bin;D:\OraLite501\MOBILE\sdk\bin
d:\jdk1.4.0\bin\javac Publish.java
End Compile.bat
Begin Run.bat
set CLASSPATH= .;D:\jdk1.4.0\lib\tools.jar;D:\OraLite501\MOBILE\classes\CONSOLIDATOR.JAR;D:\OraLite501\MOBILE\SERVER\BIN\WEBTOGO.JAR;D:\OraLite501\jdbc\lib\classes12.zip;D:\OraLite501\MOBILE\classes\classgen.jar;D:\OraLite501\MOBILE\classes\servlet.jar;D:\OraLite501\MOBILE\CLASSES\OLITE40.JAR
set PATH= d:\jdk1.4.0\jre\bin\server;d:\jdk1.4.0\bin;D:\OraLite501\bin;D:\OraLite501\Mobile\Server\bin;D:\oracle\ora92\bin;D:\OraLite501\MOBILE\sdk\bin
d:\jdk1.4.0\bin\java Publish
End Run.bat
Begin webtogo.ora
USE_SYSTEM_CLASSPATH = NO
MODE = SERVER
PORT = 80
BASE_URL=/webtogo
ADMIN_TNS_NAME=WEBTOGO.WORLD
ADMIN_JDBC_URL=jdbc:oracle:oci8:@WEBTOGO.WORLD
APPLET_USE_THIN_JDBC = YES
THIN_JDBC_URL=jdbc:oracle:thin:@YGGDRASILL:1521:FIA.YGGDRASILL.CFR.MSSTATE.EDU
SITE_OFFLINE_PERIOD=0
CUSTOM_WORKSPACE=no
CUSTOM_DIRECTORY=myworkspace
DEFAULT_PAGE=myfirstpage.html
ADMIN_USER=8B37E78535B55525292A3A2929292999
ADMIN_PASSWORD=873515A838B85828292A3A2929292999
[EXTERNAL_AUTHENTICATION]
#CLASS=com.acme.SampleAuthenticator
# Web-to-go workspace's font
FONT_NAME=Arial
[FILESYSTEM]
#ROOT_DIR=%WEBTOGO_HOME%\server
#TYPE=O8
#TYPE=OL
#TYPE=OS
# Cache size in MBs
#CACHE_SIZE=10
MAX_CONNECTIONS=4
[DEBUG]
#ENABLE=YES
# The log file name.
#LOG_FILE=test.log
# Machine name and port where wsh.exe -m is running. Web-to-go
# will send debug output to that machine.
#MACHINE=
#PORT=100
[APPLICATIONS]
XMLFILE = ws1.xml
PACK_HELP=D:\OraLite501\mobile\doc\wtg\html\wtgdep.htm
[PUBLIC]
oracle.lite.sync.ConsolidatorServlet=/Consolidator
[CONSOLIDATOR]
# Installer will change these values
SERVER_VERSION=8.1.5
# 8.0.5 or 8.1.5
# Installer won't change these values
MAX_THREADS=3
JDBC_DRIVER=oracle.jdbc.driver.OracleDriver
CREATE_USER_OPTIONS_O8I=PROFILE CONSOLIDATOR_CLIENT_P DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS TEMPORARY TABLESPACE INDX QUOTA UNLIMITED ON INDX
CREATE_USER_OPTIONS_O8=PROFILE CONSOLIDATOR_CLIENT_P DEFAULT TABLESPACE USR QUOTA UNLIMITED ON USR
TEMPORARY TABLESPACE TEMPORARY QUOTA UNLIMITED ON TEMPORARY
TEMP=c:\\temp
WTG_PROXY_PORT=80
TRACE=NO
TRACE_ALL=NO
End webtogo.ora
Begin Mobile Server tnsnames.ora file
# TNSNAMES.ORA Network Configuration File: D:\OraLite501\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
WEBTOGO.WORLD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = YGGDRASILL.CFR.MSSTATE.EDU)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
WEBTOGO.WORLD.YGG =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = YGGDRASILL.CFR.MSSTATE.EDU)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
End Mobile Server tnsnames.ora file
Begin Database tnsnames.ora file
# TNSNAMES.ORA Network Configuration File: D:\oracle\ora92\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
INST1_HTTP.CFR.MSSTATE.EDU =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill)(PORT = 1521))
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = MODOSE)
(PRESENTATION = http://HRService)
FIA.CFR.MSSTATE.EDU =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
FIA.YGGDRASILL.CFR.MSSTATE.EDU =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill.cfr.msstate.edu)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
FIA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
FIA.YGG =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill.cfr.msstate.edu)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
EXTPROC_CONNECTION_DATA.CFR.MSSTATE.EDU =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
End Database tnsnames.ora fileDear Oracle technical representative, or user:
I need to programmatically create, and remove publications using the pure JAVA classes of Consolidator, ConsolidatorManager, and ResourceManager for the Mobile Server in OracleLite 9i Release 5.0.1. On the creation side I have managed to get the example found in the directory OraLite501\Mobile\Server\Sample\Sample11 functioning using my installation parameters. I had a very difficult time of it because (1) the sample11 code fails to open an jdbc connection to the Mobile Server Repository Schema with the function Consolidator.OpenConnection, and (2) the ResourceManager function openConnection will not work unless the Webtogo.ora file is in the current working directory. The ConsolidatorManager function OpenConnection may also not work unless the Webtogo.ora file is in the current working directory, but I did test the hypothesis. Both of these problems need to be addressed in the sample11 code, and documentation to save other software developers from wasting hours of their valuable time. See line 223, 386, and 448 in the Publish.Java code that follows this problem description.
With the above two problems resolved, I can now programmatically create publications, but no hints on how to programmatically remove a publication exist in the documentation. The application I am developing will require the dynamic creation, and removal of publications. Also, when developing applications the complete removal of a publication is absolutely necessary when you have botched a publication. Thus my first question is What sequence of ResourceManager, and ConsolidatorManager function calls will completely remove a Publication?.
I also have two issues remaining with the code that I have so far developed. These issues will most likely be resolved, when I obtain instructions on how to completely remove a publication, and associated users. But, perhaps not. Referencing the Publish.java file that follows this problem description,
1. The ResourceManager function dropUser does not drop a user. See my comments, and code beginning at line 277 in Publish.java. Do I need to de-instantiate all subscriptions, and unsubscribe all subscription users before calling this function.? I think, I tried the de-instantiate, unsubscribe sequence without success, but in the confusion I may not have made the try.
2. How do I get rid of an index created with the ConsolidatorManager function DropPublicationItemIndex?. My comments on this problem begin at line 522 in Publish.java. For some reason the DropPublicationItemIndex function call made below line 448 does not work. What function calls are required prior to calling the DropPublicationItemIndex function?
Throughout the Publish.java code, I have made comments about some of the problems that I have had in getting the sample11 code working for my installation parameters. I think these comments should help the programmers maintaining the ResourceManager, and ConsolidatorManager code improve the stability of the programs. Please pass these comments, and attached files to the appropriate individuals,
if you are in a position to do so.
The other files that follow the Publish.java code are
1. Compile.bat - Compiles Publish.java using j2sdk1.4.0.
2. Run.bat - Executes Publish using \ j2sdk1.4.0\jre\server\jvm.dll.
3. Webtogo.ora
4. tnsnames.ora for the Mobile Server.
5. tnsnames.ora for the Database.
Feel free to access my server if you need to do so in resolving my problems. The parameters you will need to gain access can be found at the top of Publish.java, and in the included *.ora files.
Thanks,
Thomas G. Matney
[email protected]
(662)325-2791
//Start of Publish.java code
// Oracle HTTP Server URL = http://yggdrasill.cfr.msstate.edu:7778
// = http://130.18.168.225:7778
// Mobile Server URL = http://yggdrasill.cfr.msstate.edu/webtogo/startup
// = http://130.18.168.225/webtogo/startup
// Mobile Server Control Center URL = http://yggdrasill.cfr.msstate.edu/webtogo
// = http://130.18.168.225/webtogo
// Mobile Server Control Center URL = http://yggdrasill.cfr.msstate.edu/webtogo
// = http://130.18.168.225/webtogo
// Mobile Server Control Center username = administrator
// Mobile Server Control Center password = admin
// Mobile Server URL = http://yggdrasill.cfr.msstate.edu/webtogo/startup
// = http://130.18.168.225/webtogo/startup
// Mobile administrator username = fiafield // Schema FIAFIELD on FIA.CFR.MSSTATE.EDU
// Mobile administrator password = fiafield // Username and password are the same
import java.sql.SQLException;
import java.sql.*;
import oracle.lite.sync.Consolidator;
import oracle.lite.sync.ConsolidatorManager;
import oracle.mobile.admin.ResourceManager;
import oracle.mobile.admin.ResException;
import oracle.sql.*;
import oracle.jdbc.*;
import oracle.mobile.admin.*;
public class Publish
// Schema names and usernames are not case sensitive.
// UN fiafield = FIAFIELD
// SCHEMA fiafield = FIAFIELD
// Schema name/Username, and password used on creation of Mobile Repository
static String CONS_SCHEMA = "fiafield";
static String DEFAULT_PASSWORD = "fiafield";
static String admin_jdbc_url = "jdbc:oracle:oci8:@WEBTOGO.WORLD";
static String thin_jdbc_url =
"jdbc:oracle:thin:@YGGDRASILL:1521:FIA.YGGDRASILL.CFR.MSSTATE.EDU";
static String Publication;
static String CreateTreeTableShortNames =
"CREATE TABLE FIAFIELD.ZMTR1TBL("
+ "id FLOAT,"
+ "subp FLOAT,"
+ "rnum FLOAT,"
+ "st FLOAT,"
+ "unit FLOAT,"
+ "cnty FLOAT,"
+ "plot FLOAT,"
+ "cyc FLOAT,"
+ "scyc FLOAT,"
+ "tree FLOAT,"
+ "ncpt FLOAT NULL,"
+ "dist FLOAT NULL,"
+ "diam FLOAT NULL,"
+ "dmht FLOAT NULL,"
+ "dmck FLOAT NULL,"
+ "spec FLOAT NULL,"
+ "lang FLOAT NULL,"
+ "nctc FLOAT NULL,"
+ "stat FLOAT NULL,"
+ "util FLOAT NULL,"
+ "deca FLOAT NULL,"
+ "crat FLOAT NULL,"
+ "ccls FLOAT NULL,"
+ "az FLOAT NULL,"
+ "cond FLOAT NULL,"
+ "tlen FLOAT NULL,"
+ "alen FLOAT NULL,"
+ "lmet FLOAT NULL,"
+ "nctg FLOAT NULL,"
+ "rcul FLOAT NULL,"
+ "ncpd FLOAT NULL,"
+ "dead FLOAT NULL,"
+ "mor FLOAT NULL,"
+ "modm FLOAT NULL,"
+ "dml1 FLOAT NULL,"
+ "dmt1 FLOAT NULL,"
+ "dms1 FLOAT NULL,"
+ "dma1 FLOAT NULL,"
+ "dml2 FLOAT NULL,"
+ "dmt2 FLOAT NULL,"
+ "dms2 FLOAT NULL,"
+ "dma2 FLOAT NULL,"
+ "dml3 FLOAT NULL,"
+ "dmt3 FLOAT NULL,"
+ "dms3 FLOAT NULL,"
+ "dma3 FLOAT NULL,"
+ "dbtr FLOAT NULL,"
+ "dbsp FLOAT NULL,"
+ "nxtn FLOAT NULL,"
+ "dbds FLOAT NULL,"
+ "dbaz FLOAT NULL,"
+ "psta FLOAT NULL,"
+ "fiat FLOAT NULL,"
+ "fhmt FLOAT NULL"
+ ")";
static String CreateTreeTableLongNames =
"CREATE TABLE FIAFIELD.ZMTR1TBL("
+ "ID FLOAT,"
+ "SUBPLOT FLOAT,"
+ "RECORD_NUMBER FLOAT,"
+ "STATE FLOAT,"
+ "UNIT FLOAT,"
+ "COUNTY FLOAT,"
+ "PLOT FLOAT,"
+ "CYCLE FLOAT,"
+ "SUBCYCLE FLOAT,"
+ "TREE FLOAT,"
+ "NC_PLOT_TYPE FLOAT,"
+ "DISTANCE FLOAT NULL,"
+ "DIAMETER FLOAT NULL,"
+ "DIAMETER_HEIGHT FLOAT NULL,"
+ "DIAMETER_CHECK FLOAT NULL,"
+ "SPECIES FLOAT NULL,"
+ "LEAN_ANGLE FLOAT NULL,"
+ "NC_TREE_CLASS FLOAT NULL,"
+ "STATUS FLOAT NULL,"
+ "UTILIZATION FLOAT NULL,"
+ "DECAY FLOAT NULL,"
+ "CROWN_RATIO FLOAT NULL,"
+ "CROWN_CLASS FLOAT NULL,"
+ "AZIMUTH FLOAT NULL,"
+ "CONDITION FLOAT NULL,"
+ "TOTAL_LENGTH FLOAT NULL,"
+ "ACTUAL_LENGTH FLOAT NULL,"
+ "LENGTH_METHOD FLOAT NULL,"
+ "NC_TREE_GRADE FLOAT NULL,"
+ "ROTTEN_CULL FLOAT NULL,"
+ "NC_PREVIOUS_DBH FLOAT NULL,"
+ "CAUSE_OF_DEATH FLOAT NULL,"
+ "MORTALITY_YEAR FLOAT NULL,"
+ "MO_DAMAGE FLOAT NULL,"
+ "DAMAGE_LOCATION1 FLOAT NULL,"
+ "DAMAGE_TYPE1 FLOAT NULL,"
+ "DAMAGE_SEVERITY1 FLOAT NULL,"
+ "NC_DAMAGE_AGENT1 FLOAT NULL,"
+ "DAMAGE_LOCATION2 FLOAT NULL,"
+ "DAMAGE_TYPE2 FLOAT NULL,"
+ "DAMAGE_SEVERITY2 FLOAT NULL,"
+ "NC_DAMAGE_AGENT2 FLOAT NULL,"
+ "DAMAGE_LOCATION3 FLOAT NULL,"
+ "DAMAGE_TYPE3 FLOAT NULL,"
+ "DAMAGE_SEVERITY3 FLOAT NULL,"
+ "NC_DAMAGE_AGENT3 FLOAT NULL,"
+ "DB_TREE FLOAT NULL,"
+ "DB_SPECIES FLOAT NULL,"
+ "NEXT_NUMBER FLOAT NULL,"
+ "DB_DISTANCE FLOAT NULL,"
+ "DB_AZIMUTH FLOAT NULL,"
+ "PREVIOUS_STATUS FLOAT NULL,"
+ "FIA_TREE_NUMBER FLOAT NULL,"
+ "FHM_TREE FLOAT NULL"
+ ")";
public static void main(String argv[]) throws Throwable
// Publish - an OKAPI sample
if(argv.length == 2)
CONS_SCHEMA = argv[0] ;
DEFAULT_PASSWORD = argv[1] ;
//create required tables using standard jdbc
//DriverManager.registerDriver ((Driver)Class.forName ("oracle.jdbc.driver.OracleDriver").newInstance ());
DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
Connection c = null;
Statement s = null;
try
// Open connection to Mobile Repositoty/FIAFIELD schema as SYSTEM.
// Need the ability to grant resources, and connection to Mobile Repository user
//c = DriverManager.getConnection ("jdbc:oracle:oci8:@WEBTOGO.WORLD", "SYSTEM", "phwphw" );
// Remote connection. See attached webtogo.ora.
c = DriverManager.getConnection ("jdbc:oracle:oci8:@WEBTOGO.WORLD.YGG",
"SYSTEM", "phwphw");
s = c.createStatement ();
try
s.executeUpdate("DROP table FIAFIELD.ZMTR1TBL");
catch (SQLException ee)
ee.printStackTrace ();
try
s.executeUpdate(CreateTreeTableShortNames);
catch (SQLException ee)
ee.printStackTrace ();
try
s.executeUpdate("alter table FIAFIELD.ZMTR1TBL add constraint"
+" zmtr1tbl_pk primary key(subp, tree)");
catch (SQLException ee)
ee.printStackTrace ();
// Line 223 // create consolidator publications.
try
// *****!!!!! Unless the Webtogo.ora file is in the current working
// directory the connection is not made. This version of the resource
// manager must be looking for the file in the old 8i Mobile default
// directory. This is a definite problem. If the code was working, the
// addition of the webtogo.ora should have affect on the functionality
// of the code.
// The connection is made to the Mobile Server. At least no exceptions
// are thrown, provided the webtogo.ora is in the current working
// directory.
//oracle.mobile.admin.ResourceManager.openConnection(CONS_SCHEMA, DEFAULT_PASSWORD);
// I tried making a direct connect to possibly avoid needing to have the
// webtogo.ora file in the current directory. The direct coonect did not work.
// You can quickly convince yourself that the webtogo.ora file must
// be in the current working directory, by running the code with and
// without the webtogo.ora in the current working directory.
// The directory OraLiteHome\Mobile\Server\bin is in the PATH after
// after installation but the extension .ora is not in PATHEXT. The
// OraLite installer should put .ora in PATHEXT. I tried adding .ora
// to the PATHEXT, but it still could not find thw webtogo.ora file,
// and it should have. What is going on? I am a bit rusty on DOS so
// I may not have thing right.
// OraLiteHome\Mobile\Server\bin is the residing directory for
// the functional copy of the webtogo.ora file.
oracle.mobile.admin.ResourceManager.openConnection(
CONS_SCHEMA,
DEFAULT_PASSWORD,
"jdbc:oracle:oci8:@WEBTOGO.WORLD");
catch(ResException ee)
ee.printStackTrace (); // NULL Pointer Exception?
// The Mobile user is created, and then the function throws a resource exception.
// This is a serious problem with the code. One would assume that the user
// is not created if and exception is thrown.
// This appears to be a bug in the createUser code. The function should return
// false if the user is not created, and handle, or not throw the exception.
// The function always returns false. It does return true when a user is created
// because it throws an exception.
boolean bIsCreated;
System.out.println("Begin of why is ResourceManager not dropping users?");
// Line 277
try
// The dropUser function will not drop a user. I have tested the function
// by creating the user ZMPT1UA in the Mobile Server Control Center
// http://Yggdrasill.cfr.msstate.edu/webtogo
// so I know that the user exist.
// This function throws a ResException but it is not declared correctly
// since you cannot trap the exception as a ResException. It always tells
// me the view does not exist. What steps are required to get the function
// to work? What function calls need to be made prior to calling the dropUser
// function.
oracle.mobile.admin.ResourceManager.dropUser("ZMPT1UA");
catch (Throwable ee)
ee.printStackTrace (); // NULL Pointer Exception?
System.out.println("End of why is ResourceManager not dropping users?");
try
bIsCreated = oracle.mobile.admin.ResourceManager.createUser(
"ZMPT1UA",
DEFAULT_PASSWORD,
"ZMPT1UA", "S");
catch (Throwable ee)
ee.printStackTrace (); // Ignore exception
// Obsolete or depreciated function, according to documentation?
oracle.mobile.admin.ResourceManager.commitTransaction();
// Create CONS_SCHEMA user on the database with the same username, and
// password as the user on the Mobile Server side. This is why the
// DriverManager connection was made as SYSTEM/phwphw.
// Grant ALL to repository, and user on replicated database
// On the database side there is a user with un = fiafield,
// and pw = fiafield, which is the same as the Mobile Repository
// schema name/password pair fiafield/fiafield. Can this duality
// create a problem? Probably not.
// Need SYSTEM ADMIN privilages for the next two steps, and that is
// why the coonection was established as SYSTEM/phwphw.
// Make user, and grants for Publish to user CONS_SCHEMA, and ZMPT1UA
System.out.println("Pargress point D");
try
s.execute("Create user " + "ZMPT1UA" + " identified by " + DEFAULT_PASSWORD);
catch (SQLException ee)
ee.printStackTrace (); // ignore
try
s.execute("GRANT ALL ON FIAFIELD.ZMTR1TBL to " + CONS_SCHEMA + " WITH GRANT OPTION");
catch (SQLException ee)
ee.printStackTrace (); // ignore
try
s.execute("GRANT ALL ON FIAFIELD.ZMTR1TBL to " + "ZMPT1UA" + " WITH GRANT OPTION");
catch (SQLException ee)
ee.printStackTrace (); // ignore
/* This code is not needed to test the code
// Insert items into table FIAFIELD.ZMTR1TBL from FIAFIELD.HUSKY_TREE
String Statement =
"INSERT INTO FIAFIELD.ZMTR1TBL SELECT * from FIAFIELD.HUSKY_TREE WHERE PLOT = 1";
try
s.execute(Statement);
catch (SQLException ee)
System.out.println("FIAFIELD.HUSKY_TREE was not inserted into FIAFIELD.ZMTR1TBL");
ee.printStackTrace (); // ignore
c.commit ();
catch (SQLException ee)
ee.printStackTrace ();
finally
if (s!= null) try {s.close ();}catch (SQLException e1){}
if (c!= null) try {c.close ();}catch (SQLException e2){}
// The Consolidator class is not thread safe, and I will eventually
// need thread safety. The ConsolidatorManage class is thread safe.
//Consolidator ConsolidatorXX = new Consolidator();
ConsolidatorManager ConsolidatorXX = new ConsolidatorManager();
// Line 386
// Try opening a connection. Sample11 does not open a connection, but it seems
// like a logical first thing to do.
// At least with this connection the DropPublication, and AddPublication functions
// appear to work, or at least they do not throw exceptions. The DropPublication
// throws an exception if a publication does not exist? I tested this and indeed
// if I call the DropPublication function, and do not create the Publication again
// when I reenter the program the DropPublication function throws an exception, and
// produces the correct error message(The publication does not exist). There is hope.
// It is very disturbing that the program fails unless the webtogo.ora file is not
// in the current working directory. Because the OpenConnection functions of both
// the ResourceManager, and ConsolidatorManager both appear to need access to the
// webtogo.ora file, and they are finding them in the current directory, the
// logical conclusion is that both of the classes are attempting to open the
// webtogo.ora with the relative path webtogo.ora, and not the absolute path
// OraHomeLite/Mobile/Server/Bin/webtogo.ora. As this has to be the case, why
// is this very important fact not in the documentation? Or, am I wrong?
Connection conn = null;
try
//ConsolidatorXX.OpenConnection(CONS_SCHEMA,
//DEFAULT_PASSWORD);
//ConsolidatorXX.OpenConnection(CONS_SCHEMA,
//DEFAULT_PASSWORD,
//"jdbc:oracle:oci8:@WEBTOGO.WORLD");
conn = DriverManager.getConnection
("jdbc:oracle:oci8:@WEBTOGO.WORLD",
CONS_SCHEMA,DEFAULT_PASSWORD);
//conn = DriverManager.getConnection
//("jdbc:oracle:oci8:@WEBTOGO.WORLD",
//"SYSTEM","phwphw");
ConsolidatorXX.OpenConnection(conn);
catch (Throwable e)
e.printStackTrace(); //ignore error
// Publication name
Publication = "ZMTR1PUB";
try
ConsolidatorXX.DeinstantiateSubscription(Publication, "ZMPT1UA");
catch (Throwable e)
System.out.println("Could not Deinstantiate Subscription ZMPT1UA");
e.printStackTrace(); //ignore error
// Line 448
// There is no Consolidator.OpenConnection in the orginal sample11.java code.
// Why?. It appears to be neccessary. The only way I can make the sample11 code
// or this program work is to open a jdbc connection with the Consolidator.OpenConnection
// function. I assume that somehow the Consolidator.OpenConnection function was
// deleted from sample11.java.
// This try to drop a publication index does not work, because when I try
// to recreate the index in the following code it warns me that I have a
// bad column name for the index. So it thinks the index still exist.
// Why?. How do I get rid of the index?
try
ConsolidatorXX.DropPublicationItemIndex("ZMTR1IX1");
catch (Throwable e)
e.printStackTrace(); //ignore error
try
ConsolidatorXX.DropPublicationItem("ZMTR1ITM");
catch (Throwable e)
e.printStackTrace(); //ignore error
try
ConsolidatorXX.DropPublication(Publication);
catch (Throwable e)
e.printStackTrace(); //ignore error
try
//ConsolidatorXX.CreatePublication(Publication, Consolidator.OKPI_CREATOR_ID,
//"zMTR1.%s", null);
ConsolidatorXX.CreatePublication(Publication, Consolidator.OKAPI_WINCE,
"zMTR1.%s", null);
catch (Throwable e)
e.printStackTrace(); //ignore error
try
ConsolidatorXX.DropPublicationItemIndex("ZMTR1IX1");
catch (Throwable e)
e.printStackTrace(); //ignore error
try
ConsolidatorXX.CreatePublicationItem("ZMTR1ITM","FIAFIELD","ZMTR1TBL", "F",
"SELECT * FROM FIAFIELD.ZMTR1TBL", null, null);
catch (Throwable e)
e.printStackTrace();
System.out.println("Begin of how can drop this index and get rid of the warning?");
// Line 522
// I defined the index ZMTR1IX1 originally on the variable subp, and did not get
// any warning. I then changed the index variable for the index to id, and started
// receiving the warning to check the index column for typographical errors. Even
// if I change the index variable back to subp, I continue to receive the warning.
// How do I get rid of the index and the warning, so I can recreate the index for
// another variable? I quess the real question is "How to I completely remove a
// publication, and all of its parts so I can start over?
try
ConsolidatorXX.CreatePublicationItemIndex(
"ZMTR1IX1", "ZMTR1ITM", "I", "id");
catch (Throwable e)
e.printStackTrace ();
System.out.println("End of how can drop this index and get rid of the warning?");
try
ConsolidatorXX.AddPublicationItem(
Publication, "ZMTR1ITM", null, null, "S", null, null);
catch (Throwable e)
e.printStackTrace ();
try
ConsolidatorXX.CreateSubscription(Publication, "ZMPT1UA");
catch (Throwable e)
e.printStackTrace ();
try
ConsolidatorXX.InstantiateSubscription(Publication, "ZMPT1UA");
catch (Throwable e)
e.printStackTrace ();
try
ConsolidatorXX.CloseConnection();
if(conn != null)
conn.close();
catch (Throwable e)
e.printStackTrace(); //ignore error
// Obsolete or depreciated function, according to documentation?
oracle.mobile.admin.ResourceManager.commitTransaction();
oracle.mobile.admin.ResourceManager.closeConnection();
End of Publish.java code
Begin Compile.bat
set CLASSPATH = .;D:\jdk1.4.0\lib\tools.jar;D:\OraLite501\MOBILE\classes\CONSOLIDATOR.JAR;D:\OraLite501\MOBILE\SERVER\BIN\WEBTOGO.JAR;D:\OraLite501\jdbc\lib\classes12.zip;D:\OraLite501\MOBILE\classes\classgen.jar;D:\OraLite501\MOBILE\classes\servlet.jar;D:\OraLite501\MOBILE\CLASSES\OLITE40.JAR
set PATH= d:\jdk1.4.0\jre\bin\server;d:\jdk1.4.0\bin;D:\OraLite501\bin;D:\OraLite501\Mobile\Server\bin;D:\oracle\ora92\bin;D:\OraLite501\MOBILE\sdk\bin
d:\jdk1.4.0\bin\javac Publish.java
End Compile.bat
Begin Run.bat
set CLASSPATH= .;D:\jdk1.4.0\lib\tools.jar;D:\OraLite501\MOBILE\classes\CONSOLIDATOR.JAR;D:\OraLite501\MOBILE\SERVER\BIN\WEBTOGO.JAR;D:\OraLite501\jdbc\lib\classes12.zip;D:\OraLite501\MOBILE\classes\classgen.jar;D:\OraLite501\MOBILE\classes\servlet.jar;D:\OraLite501\MOBILE\CLASSES\OLITE40.JAR
set PATH= d:\jdk1.4.0\jre\bin\server;d:\jdk1.4.0\bin;D:\OraLite501\bin;D:\OraLite501\Mobile\Server\bin;D:\oracle\ora92\bin;D:\OraLite501\MOBILE\sdk\bin
d:\jdk1.4.0\bin\java Publish
End Run.bat
Begin webtogo.ora
USE_SYSTEM_CLASSPATH = NO
MODE = SERVER
PORT = 80
BASE_URL=/webtogo
ADMIN_TNS_NAME=WEBTOGO.WORLD
ADMIN_JDBC_URL=jdbc:oracle:oci8:@WEBTOGO.WORLD
APPLET_USE_THIN_JDBC = YES
THIN_JDBC_URL=jdbc:oracle:thin:@YGGDRASILL:1521:FIA.YGGDRASILL.CFR.MSSTATE.EDU
SITE_OFFLINE_PERIOD=0
CUSTOM_WORKSPACE=no
CUSTOM_DIRECTORY=myworkspace
DEFAULT_PAGE=myfirstpage.html
ADMIN_USER=8B37E78535B55525292A3A2929292999
ADMIN_PASSWORD=873515A838B85828292A3A2929292999
[EXTERNAL_AUTHENTICATION]
#CLASS=com.acme.SampleAuthenticator
# Web-to-go workspace's font
FONT_NAME=Arial
[FILESYSTEM]
#ROOT_DIR=%WEBTOGO_HOME%\server
#TYPE=O8
#TYPE=OL
#TYPE=OS
# Cache size in MBs
#CACHE_SIZE=10
MAX_CONNECTIONS=4
[DEBUG]
#ENABLE=YES
# The log file name.
#LOG_FILE=test.log
# Machine name and port where wsh.exe -m is running. Web-to-go
# will send debug output to that machine.
#MACHINE=
#PORT=100
[APPLICATIONS]
XMLFILE = ws1.xml
PACK_HELP=D:\OraLite501\mobile\doc\wtg\html\wtgdep.htm
[PUBLIC]
oracle.lite.sync.ConsolidatorServlet=/Consolidator
[CONSOLIDATOR]
# Installer will change these values
SERVER_VERSION=8.1.5
# 8.0.5 or 8.1.5
# Installer won't change these values
MAX_THREADS=3
JDBC_DRIVER=oracle.jdbc.driver.OracleDriver
CREATE_USER_OPTIONS_O8I=PROFILE CONSOLIDATOR_CLIENT_P DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS TEMPORARY TABLESPACE INDX QUOTA UNLIMITED ON INDX
CREATE_USER_OPTIONS_O8=PROFILE CONSOLIDATOR_CLIENT_P DEFAULT TABLESPACE USR QUOTA UNLIMITED ON USR
TEMPORARY TABLESPACE TEMPORARY QUOTA UNLIMITED ON TEMPORARY
TEMP=c:\\temp
WTG_PROXY_PORT=80
TRACE=NO
TRACE_ALL=NO
End webtogo.ora
Begin Mobile Server tnsnames.ora file
# TNSNAMES.ORA Network Configuration File: D:\OraLite501\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
WEBTOGO.WORLD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = YGGDRASILL.CFR.MSSTATE.EDU)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
WEBTOGO.WORLD.YGG =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = YGGDRASILL.CFR.MSSTATE.EDU)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
End Mobile Server tnsnames.ora file
Begin Database tnsnames.ora file
# TNSNAMES.ORA Network Configuration File: D:\oracle\ora92\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
INST1_HTTP.CFR.MSSTATE.EDU =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill)(PORT = 1521))
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = MODOSE)
(PRESENTATION = http://HRService)
FIA.CFR.MSSTATE.EDU =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
FIA.YGGDRASILL.CFR.MSSTATE.EDU =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill.cfr.msstate.edu)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
FIA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
FIA.YGG =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill.cfr.msstate.edu)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
EXTPROC_CONNECTION_DATA.CFR.MSSTATE.EDU =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
End Database tnsnames.ora file -
Hi,
I have a form that was working with webutil. We implemented SSO on the server. Know the webutil jar file does not load - it can not find it.
Getting the following message in java console:
Loading http://capps.cauto.com/forms90/webutil/webutil.jar from JAR cache
Loading http://capps.cauto.com/forms90/webutil/jacob.jar from JAR cache
Loading http://capps.cauto.com/forms90/java/f90all_jinit.jar from JAR cache
RegisterWebUtil - Loading Webutil Version 1.0.2 Beta
Loading http://capps.cauto.com/forms90/java/rolloverbutton.jar from JAR cache
Loading http://capps.cauto.com/forms90/java/hyperlink.jar from JAR cache
connectMode=HTTP, native.
Forms Applet version is : 90290
java.io.IOException: Could not connect to http://wadjet.cauto.com/forms90/webutil/webutil.jar
at oracle.jre.protocol.jar.JarCache$CachedJarLoader.download(Unknown Source)
at oracle.jre.protocol.jar.JarCache$CachedJarLoader.load(Unknown Source)
at oracle.jre.protocol.jar.JarCache.get(Unknown Source)
Has anyone use SSO and webutil?
Thanks,
Mary SantryMary,
using single sign-On with Forms should not have an impact to webutil.jar.
Just to be sure: You configured webutil and it works if not running using single sign-on. You configured Forms to use singke sign-on (uncommenting th emod_osso directive in forms90.conf file) and from now on webutil.jar cannot be found.
What if you directly try and request the webutil.jar file from a Browser
http://wadjet.cauto.com/forms90/webutil/webutil.jar ?
Can you access jacob.jar using a Browser URL?
Fran -
Hi,
i want to use SSO with Bi Beans. I have my BiBeans deployed on a 9iasR2 (9.0.2.3). I edit the mod_osso.conf with <Location /*appname*> require valid-user authType Basic </Location> and i have in BIController uncomment the sso blocks.
After authenticated to the SSO, i got always a NullPointerException. I looked in the code and i found that application.getBISession() is not initalized.
Please, have anybody an idea, or knows anybody a documentation about SSO and BIBeans.
best regards
Renecn=XXX information is missing for the SSO Server (orasso) when going to http://servername:7777/pls/orasso/orasso.home. Is that causing the problem? If so, how can I resolve it?
Thanks.
Andy -
SSO and success URL with parameters
Hello
I have succeeded to configure HTML_DB engine as Partner App for Oracle SSO.
HTML_DB 1.5.0.00.33
Oracle IAS Release 1 ehk 1.0.2.2.2
I'm entering into HTMLDB application from outside directly to concrete page with concrete parameters. The calling outside app is authenticated with SSO.
Example URL: http://host/pls/DAD/f?p=103:3:::::PAR1,PAR2:VAL1,VAL2
I'm then authenticated checked against SSO and redirected to my requested page, but the parameters are lost. The URL looks like http://host/pls/DAD/f?p=103:3:987698769876098
It only happens at first try. Next time I have a session and I'm redirected together with parametes.
It seams that this http://host/pls/DAD/wwv_flow_custom_auth_sso.process_success is getting somehow wrong parameter URLC. Without parameters. Why?
Please help!
Yours,
jan lakspereHi
Thanks, Scott.
This patch 1.5.1 solved this problem. Now SSO redirect forwards the parameters together with URL.
Yours,
jan -
SSO and LDAP no working after revokeing Territory selection choice of SSO
Hi i have 9ias 9.0.2 infrastructure on win 2k box.
earlier the territory selection choice was checked.
but when i unchecked that option. and i logged out of SSO.
Now the problem is i am not getting the SSO and Internet Directory home pages.
and in Enterprise manager web page shows both are up.
win 2k's task manager also shows the all the three process of Internet directory also running along with other essentianl processs.
any clue....
my whole work and intranet & extranet is not accessible due to this.... it will be great to me if i get any tip of hint...
thanks a lot... in advance...
regards
samir([email protected])Well, this is certainly a case where I would be opening a tech support case. Your server is down, and you need help . .
I'll try what I can for you.
[18/Jun/2004:09:21:57 -0400] vipmail2 httpd[1560]: Account Debug: SASL [10.29.11.63] Cannot get namespace for domain vipmail2.kvcc.edu: Entry not found
This likely means that you've missed another, earlier error in the log. I suspect that what may have happened, is that the USER that Messaging Server connects to LDAP with has had a password change, and you're no longer able to BIND to LDAP to make queries.
I would start looking at your LDAP Access Log, and see what user you're attempting to BIND as, and see if that BIND is successful.
The contents of msg.conf and your other file is useful as information, but is not a user-editable file. You must use configutil to make changes, as this data is stored in LDAP, and on server startup, the files will be rewritten with ldap data.
Maybe you are looking for
-
Pricing Procedure for harvest type of products - wheat/ corn
Dear Gurus, I have to define a price procedure for harvest products such as wheat, corn etc... The only piece of information I have is that there is no minimum quantity and that the unit of measure is the Kilo or the Ton. Based on that, could anyone
-
Prorate calculation based on Martial status
Dear Experts, We have two types of the minimum of Housing Allowance(IT0014 - HA01WT): 1. 1000 Monthly for Single 2. 1500 Monthly for Married And this changeable based on Marital Status Key on Info Type 0002. However; if the change of Ma
-
Planning to upgrade from Hyperion v9.3.1 to Hyperion V11.1.2.1
HI, I have doubt on upgrade part. Planning to upgrade from Hyperion v9.3.1 to Hyperion V11.1.2.1 Below products are using in v9.3.1 1. Essbase 2. EIS 3. Web Analyzer 4. Excel Add-in Below breakup for Hyperion objects Total number of c
-
Exception CX_SY_NO_HANDLER
HI, The following error is displayed when i call the FM BBP_OM_STRUC_GET_USER_FROM_ORG in the work flow badi. The following is the popup displayed: Exception CX_SY_NO_HANDLER triggered An exception with the type CX_SY_DYN_CALL_ILLEGAL_TYPE occurr CX_
-
hi I created page life cycle for my page and im trying to initialize page by using following code in prepare model method. FacesContext ctx = FacesContext.getCurrentInstance(); Application app = ctx.getApplication(); ValueBinding first = app.createVa