.NET Core, Java, NodeJS, React + Redux, Typescript, Oracle, Microsoft SQL Server, PostgreSQL, Microsoft Azure, Amazon AWS, and more.
Thursday, October 28, 2010
Understanding Public Clouds: IaaS, PaaS, & SaaS
Excellent article can be found at: http://www.keithpij.com/Home/tabid/36/EntryID/27/Default.aspx
Wednesday, October 27, 2010
IIS7 - static content is not displayed
Use Case
On fresh Win7 Professional box, static content (images, css, js) is not displayed.
Solution
By default, Static Content Service is turned off in IIS7 installation. Make sure, that you have that service enabled at: Turn Windows Features On and Off > Internet Information Service > World Wide Web Services > Common Http Features > Static Content.
For more information, refer to http://weblogs.asp.net/anasghanem/archive/2008/05/23/don-t-forget-to-check-quot-static-content-service-quot-in-iis7-installation.aspx
On fresh Win7 Professional box, static content (images, css, js) is not displayed.
Solution
By default, Static Content Service is turned off in IIS7 installation. Make sure, that you have that service enabled at: Turn Windows Features On and Off > Internet Information Service > World Wide Web Services > Common Http Features > Static Content.
For more information, refer to http://weblogs.asp.net/anasghanem/archive/2008/05/23/don-t-forget-to-check-quot-static-content-service-quot-in-iis7-installation.aspx
Tuesday, October 26, 2010
System.Transactions with ODP.NET. System.AccessViolationException: “Attempted to read or write protected memory. Data provider internal error(-3000).
Use Case
Oracle 10g
Oracle Data Provider for .NET 2.0 11.2.0.1.2
Oracle 10g
Oracle Data Provider for .NET 2.0 11.2.0.1.2
VS 2008, C#
When trying to open connection to Oracle database inside Distributed Transactions, weird exception appears:
System.AccessViolationException: “Attempted to read or write protected memory. This is often an indication that other memory is corrupt.”
another people reported following exception:
Data provider internal error(-3000) [System.String]
Steps to reproduce.
1. Use explicit CommittableTransaction
var factory = DbProviderFactories.GetFactory("Oracle.DataAccess.Client");
string constr = 'my connection string';
using (var transaction = new CommittableTransaction())
{
using (var conn = factory.CreateConnection())
{
conn.ConnectionString = constr;
conn.Open();
conn.EnlistTransaction(transaction); <- Exception thrown here
}
}
Solution
After some time spent to reading documentation and googling, following things became apparent.
First of all, distributed transactions are handled by Distributed Transaction Coordinator service, so, MS DTC service must be running (in major configuration it's start mode is Manual)
Second, behaviour of odp.net depends on exact version of Oracle server and client versions and .net framework version. Recipe shown here wasn't checked on all possible combinations.
Third, there are some special connection string parameters needs to be considered.
As follows from http://download.oracle.com/docs/cd/E11882_01/win.112/e12249/featADO20.htm#CJAEBFEB, when first connection is opened to Oracle Database 10g (or higher), a local transaction is created. When a second connection is opened, the transaction is automatically promoted to a distributed transaction.
Connections, created from transaction context, must have "Promotable Transaction" setting set to "promotable".
Also, if application use System.Transactions, it is required that the "enlist" connection string attribute is set to either "true" (default) or "dynamic".
So, in my case, all what I had to do is just make sure that correct Promotable Transaction and Enlist settings are set.
When trying to open connection to Oracle database inside Distributed Transactions, weird exception appears:
System.AccessViolationException: “Attempted to read or write protected memory. This is often an indication that other memory is corrupt.”
another people reported following exception:
Data provider internal error(-3000) [System.String]
Steps to reproduce.
1. Use explicit CommittableTransaction
var factory = DbProviderFactories.GetFactory("Oracle.DataAccess.Client");
string constr = 'my connection string';
using (var transaction = new CommittableTransaction())
{
using (var conn = factory.CreateConnection())
{
conn.ConnectionString = constr;
conn.Open();
conn.EnlistTransaction(transaction); <- Exception thrown here
}
}
2. Use implicit TransactionScope
var factory = DbProviderFactories.GetFactory("Oracle.DataAccess.Client");
string constr = 'my connection string';
using (var scope = new TransactionScope())
{
using (var conn = factory.CreateConnection())
{
conn.ConnectionString = constr;
conn.Open(); <-- Exception thrown here
}
}
After some time spent to reading documentation and googling, following things became apparent.
First of all, distributed transactions are handled by Distributed Transaction Coordinator service, so, MS DTC service must be running (in major configuration it's start mode is Manual)
Second, behaviour of odp.net depends on exact version of Oracle server and client versions and .net framework version. Recipe shown here wasn't checked on all possible combinations.
Third, there are some special connection string parameters needs to be considered.
As follows from http://download.oracle.com/docs/cd/E11882_01/win.112/e12249/featADO20.htm#CJAEBFEB, when first connection is opened to Oracle Database 10g (or higher), a local transaction is created. When a second connection is opened, the transaction is automatically promoted to a distributed transaction.
Connections, created from transaction context, must have "Promotable Transaction" setting set to "promotable".
Also, if application use System.Transactions, it is required that the "enlist" connection string attribute is set to either "true" (default) or "dynamic".
So, in my case, all what I had to do is just make sure that correct Promotable Transaction and Enlist settings are set.
Simplest way to create user in oracle
Use Case
You need to create new user in Oracle database with ability to connect and manage data objects
Solution
The simplest form is:
create user ecxtenant102 identified by ecxtenant102_secret
where ecxtenant102_secret is user's password
For more comprehensive explanation, please refer to http://www.stanford.edu/dept/itss/docs/oracle/10g/server.101/b10759/statements_8003.htm
I also had to assign two roles to that user.
grant connect, resource to ecxtenant102
You need to create new user in Oracle database with ability to connect and manage data objects
Solution
The simplest form is:
create user ecxtenant102 identified by ecxtenant102_secret
where ecxtenant102_secret is user's password
For more comprehensive explanation, please refer to http://www.stanford.edu/dept/itss/docs/oracle/10g/server.101/b10759/statements_8003.htm
I also had to assign two roles to that user.
grant connect, resource to ecxtenant102
Oracle Sql Developer migrate connectons
Use Case
You've reinstalled OS from a scratch and need to import your Oracle Sql Developer settings
Solution
Copy file "I:\Users\xxx\AppData\Roaming\SQL Developer\system1.5.4.59.40\o.jdeveloper.db.connection.11.1.1.0.22.49.48\connections.xml" to appriate location on your system drive
where I: - your backup disk drive, xxx - your username
More information can be found at: http://www.webxpert.ro/andrei/2008/06/12/oracle-sql-developer-import-connections/
You've reinstalled OS from a scratch and need to import your Oracle Sql Developer settings
Solution
Copy file "I:\Users\xxx\AppData\Roaming\SQL Developer\system1.5.4.59.40\o.jdeveloper.db.connection.11.1.1.0.22.49.48\connections.xml" to appriate location on your system drive
where I: - your backup disk drive, xxx - your username
More information can be found at: http://www.webxpert.ro/andrei/2008/06/12/oracle-sql-developer-import-connections/
Monday, October 25, 2010
Outlook 2010 gmail imap synchonization issue
Use Case
After adding Gmail account via IMAP, Outlook starts Synchronization process which never ends.
Solution
Easiest solition I've found at: http://social.technet.microsoft.com/Forums/en-US/officesetupdeploy/thread/603cd05f-4f0c-4c39-ab77-6789cfac0577
1. File > Options > Advanced > Send / Receive
2. For IMAP accounts set "Download headers for subscribed folders" (under "Receive mail items" checkbox)
After adding Gmail account via IMAP, Outlook starts Synchronization process which never ends.
Solution
Easiest solition I've found at: http://social.technet.microsoft.com/Forums/en-US/officesetupdeploy/thread/603cd05f-4f0c-4c39-ab77-6789cfac0577
1. File > Options > Advanced > Send / Receive
2. For IMAP accounts set "Download headers for subscribed folders" (under "Receive mail items" checkbox)
Prevent termination of shell command executing during logoff
Use Case
Solution
Press Ctrl + Z - this will suspend the job
Enter disown -h %xxx, where xxx is the job number you get after suspending the job
Execute bg to put the job in the background
Disconnect from the shell
More information about bash commands can be found here: http://linux.about.com/library/cmd/blcmdl1_disown.htm
Subscribe to:
Posts (Atom)