I have created a 32Bit RAD Server application and I wanted to host it in my local IIS Server. I followed the steps mentioned in here But when I try to call a webservice say http://localhost:8080/emsserver/EMSServer.dll/version I get the following error :
{"error":"Forbidden","description":"EMS license not found. To resolve this issue, install an instance of Interbase with an EMS license and configure emsserver.ini to connect to the licensed instance."}
What could have gone wrong here ?
Is there again another instance of interbase has to be installed ? I had installed the interbase along with the RAD Studio 10.2 set up. The error message also suggests to configure emsserver.ini. What configuration change does it require ?
My Development environment is :RAD Studio 10.2 Enterprise on Win 10 64bit machine. The InterbaseManager is 64-bit. The IBConsole shows Version Interbase 2017 Version 13.0.0.195.
Can someone help me to get this resolved ?
Thanks in advance.
As noted here, for a RAD Server production environment, you cannot use your license for the RAD Studio IDE nor a "normal" InterBase license. Instead, to be able to run RAD Server in production on either IIS or Apache, you must install a RAD Server deployment license into InterBase. Contact Embarcadero directly (or go through your local Embarcadero sales representative) to request your RAD Server deployment license — as of 10.2 Tokyo edition, it is now included at no additional charge for RAD Studio Enterprise or Architect licensees.
Procedurally, depending on your hosting environment, you will add your RAD Server deployment license to InterBase via its License Manager on Windows or via the command line on Linux: /opt/interbase/bin/LicenseManagerLauncher -i Console as discussed here. This presumes you have previously installed InterBase centrally to serve Identity and Access Management (IAM) purposes as well as to record resource data analytics by endpoint (built-in features of RAD Server's RESTful web application framework).
Most importantly, per your question, you must configure each RAD Server instance — via its associated configuration file (EMSSERVER.INI) — to look to this central/common IAM + data analytics database (aka, the "RAD Server Database") hosted in InterBase.
By default, the RAD Server Database is defined within the InterBase file "emsserver.ib" which serves to persist the devices, users, groups and data analytics for all connected RAD Server instances. In turn, the connection parameters required by each RAD Server instance are stored under the [Data] section of the associated EMSSERVER.INI configuration file as detailed hereunder:
[Data]
InstanceName=192.168.0.127/3050
Database=/etc/ems/emsserver.ib
UserName=sysdba
Password=masterkey
SEPassword=
;# SEPassword connects to an encrypted database
Pooled=
;# Set Pooled=0 to disable connection pooled, Pooled=1 to enable (default is 1).
PooledMax=
;# Set PooledMax=10 to limit maximum pooled connection (default is 50).
As exemplified above, the [Data] section within EMSSERVER.INI defines the connection parameters to the central RAD Server Database (powered by InterBase). The connection parameters needed to get started are:
InstanceName: The <IP_Address|Hostname>/<Port_Number> of the InterBase instance hosting the RAD Server Database.
NOTE: Multiple RAD Server instances (i.e., multiple physical installations on separate machines or docker containers as discussed here) can all use the same remote RAD Server Database backend (powered by InterBase) via this InstanceName setting.
Database: The database file (or its alias) served by the InterBase-powered InstanceName pointed to above. On the Windows OS, the default setting for Database is: C:\Users\Public\Documents\Embarcadero\EMS\emsserver.ib. On Linux, the default setting is: /usr/lib/ems/emsserver.ib
UserName and Password represent credentials for the RAD Server instance connecting to the InterBase-powered RAD Server Database (by default, respectively: sysdba and masterkey).
Moving on from there, the SEPassword parameter is used for connecting to an encrypted database. Going further, connection pooling (enabled {=1} by default in the absence of a value) may be explicitly set using the Pooled=1|0. Next, the maximum number of pooled connections from this RAD Server instance to the central/common RAD Server Database is determined by the PooledMax setting (which, otherwise, defaults to 50).
Finally, further information concerning development and deployment of web applications using RAD Server can be found in David I's Complete Guide to Embarcadero RAD Server.
Related
I have created a RAD Server application and hosted it on the IIS. For this I had also installed the interbase 2020 instance using the RAD Server Multi-Site License.
Now, I want to host one more RAD Server application on the same IIS. I installed another instance of interbase 2020 instance specifying another port number and another instance name. Gave the RAD Server Multi-Site License again, and installation was done successfully.
But when i start the second instance, it fails to start, and the log said "the same license key already used by another instance".
How can I run more than 1 rad server application on an IIS ? Should there be an interbase instance for each such rad server application ? Multi-Site license wont support this ?
Can someone help me ?
I got this fixed. Though I had created a second IB database in the existing instance,
app1, app2 were created within the "Default Web Site" of IIS. i deleted those, and Created app1, app2 under "Sites" by assigning different port numbers, and opened the ports in windows firewall settings. Now, I have access app1 and app2 by specifying the ip address and the particular port number assigned to them.
I am developing an application in Delphi 10.2.3 which connects to a Firebird database installed on a machine running Windows 2016 Server. The application also connects to QuickBooks Online using a third party ODBC driver. Since this application must be accessed by 12+ users in my company, it will not be cost effective to purchase and install individual ODBC drivers for each user.
The provider of the ODBC driver has a version which can be installed on a server. Is it possible to configure an ODBC DNS connection on the server which I can access from network clients? If not, can anyone suggest a workaround.
Server vs Workstation ODBC driver usually has to do with licensing not connection method. It is always running on the same machine as the software using the connection.
Web application used by many users running on a server connecting through an ODBC driver = server licensed version of the driver.
User loading data into Excel on their computer through an ODBC driver
= client / workstation licensed driver.
Some databases, for example SQL Server, can do a database link through an ODBC driver. This is linking / exposing another database to querying from a host database server. This would allow you to share one server licensed driver. The clients would connect to the host database.
One such driver is DevArt's ODBC Driver for QuickBooks which has a help topic on creating a linked database and testing it in SQL Server Management Studio / SQL Server: Using in Microsoft SQL Server Management Studio (SSMS). Might not be applicable if each user needs to use different credentials for the QuickBooks connection.
When I try to deploy my artifact on IIS, I am getting the error as shown in the below screenshot. Any help will be greatly appreciated.
The "IIS Web App Management" screenshot is shown below:
The error message is pretty clear: You can't use it to install IIS on a client OS (such as Windows 10). You have to use a server OS (such as Windows Server).
There's nothing you can do about it other than to use a server OS or use an alternate tool to deploy.
Using Windows Remote Management (WinRM), connect to the host
machine(s) where IIS or SQL Server is installed, and manage the Web
application or deploy the SQL Server Database as described below:
Create a new website or update an existing website using AppCmd.exe.
Create a new application pool or update an existing application pool using AppCmd.exe.
Deploy a Web Application to the IIS Server using Web Deploy.
Deploy a SQL Server Database using DACPAC and SqlPackage.exe.
Your log mentioned the task was installing IIS, and it seemed the tasking was installing IIS on a windows client OS. You need to check your target machine to see whether it has IIS installed.
I got the stopper error below in my apps. I used Delphi Berlin 64bit compiler. And also used the dbxora.dll as dbxpress driver default from embarcadero. Connected to Oracle 12c DB server using TSQLConnection component.
DBX Error: Driver could not be properly initialized. Client library may be missing, not installed properly, of the wrong version, or the driver may be missing from the system path.
How can I fix this?
A DB Express driver is not always sufficient on it's own to connect to some data sources. For certain data sources (most of them in fact) you also require the client drivers for that data source, usually provided by the database vendor themselves.
Oracle is one of these.
As well as the DB Express driver you also need to install the Oracle Client software provided by Oracle. You also need to ensure that you install the correct version.
i.e. in your case since you indicate you are building a 64-bit application then you will need the 64-bit Oracle client.
If you (or your intended users) already have the 32-bit Oracle client installed then you might consider building your application as a 32-bit application instead, unless you absolutely need 64-bit capabilities.
I have been able to install 'VS2008 SP1' and 'VS2008 Tools for Silverlight' on my Windows Server 2008 development machine, but I have not been able to install the MSI for 'Silverlight Toolkit July 2009'. The install fails with the following:
"The system administrator has set policies to prevent this installation"
I am a local admin on the box. I have seen something similar when try to to 32-bit MSI on a 64-bit machine. Is that the problem that I am having?
I don't think that you need to install the SL toolkit on the server. At least, we haven't had to. We're using 64-bit Windows Server 2003, and any required Silverlight DLLs, etc., just get included in our .xap file, and get downloaded by the client when it downloads that file. All the server knows is that it's got to pass the .xap file down to a client when it requests it. The only thing that any server-side process might need to know about is the System.ServiceModel.PollingDuplex.dll (if you're using duplex WCF services), but if you simply install the SL 3.0 SDK on your dev machine, and then reference that DLL from your WCF project, it'll get included with your WCF project when you roll it out to the server in question.
The only reason you'd need to install those things on the server is if you're planning to do development on the server, which I suppose you might want to, but certainly isn't normal :-).