AWG Blogs

Sunday, March 6, 2011

Three-tier DLP Installation - The Oracle Client

There is little in the way of documentation for this.

So, I unwrapped Oracle_11.2.0.1.0_64bit_Client_Lin. Start reading the docs, i.e., the Client Quick Installation Guide. Followed all the instructions in there, including creating the oracle account, etc. For user oracle creation, running oracle_prepare.sh from 11g_r2_32_bit_Installation_Tools.tar.gz works.

Then in order to get past the DLP installation wizard's Oracle page, i.e. error "sqlplus is not executable at /opt/oracle/product/11.2.0/db_1/bin", I needed to do the following for the root account:

If you did not install the Oracle client to /opt/oracle/product/11.2.0/db_1/ then perform the following.
Add the following lines to the root .bash_profile:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/client_1
LD_LIBRARY_PATH=$ORACLE_HOME:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH

PATH=$PATH:$HOME/bin:$ORACLE_HOME


Then,
. ~/.bash_profile to set the environment.
Then,
mkdir $ORACLE_HOME/bin
cd $ORACLE_HOME/bin
ln -s ../sqlplus
mkdir $ORACLE_HOME/lib


Copy all *.so, and so.11.1 files to $ORACLE_HOME/lib
I also created $ORACLE_HOME/jdbc/lib and to it copied ojdbc*.jar from $ORACLE_HOME.

Be sure to:

set the Base directory and Home directory to match the ORACLE_HOME and ORACLE_BASE paths above in the installation wizard of DLP.

Saturday, January 22, 2011

SSH Access to PIX

First generate a public key:

ca gen rsa key 1024
or 512 or 768 for modulus size (less secure)

ca save all

ssh 0.0.0.0 0.0.0.0 inside
or outside
ssh timeout 60
passwd mypassword123

Then ssh in with user: pix

ref:
see http://www.ciscopress.com/articles/article.asp?p=24664&seqNum=5
http://www.velocityreviews.com/forums/t57033-ssh-on-pix-506e-login-name.html

Saturday, October 16, 2010

WSS Inaccessible after Windows Updates

After a scheduled Windows Update, several WSS sites became inaccessible. The Application Event Log contained events like:Unknown SQL Exception 33002 occured. Additional error information from SQL Server is included below.

Access to module dbo.proc_GetRunnableWorkItems is blocked because the signature is not valid.

I got similar errors when attempting to open any of the tables of the affected content databases in the embedded SQL Server (SSMS to \\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query).
Relatedly, WSS creates copious logs at
C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\LOGS whenever anything goes wrong with one of the WSS services, which fills up the hard drive. This may have had something to do with the failed update.

Anyway, after much googling and trying various solutions, some of which did more harm than good, I followed one suggestion and tried running the following command:

C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN>PSCO
NFIG -cmd upgrade -inplace b2b -wait -force

After some time, the operation completed and all my sites were oparational!

Saturday, September 25, 2010

Missing GPOs After DC Decommission

I followed the standard Microsoft method for decommissioning a domain controller. After retiring the server from lab, to my consternation, I started getting errors such as the following, for instance, when running gpupdate /force from a member workstation:The processing of Group Policy failed. Windows attempted to read the file \\my.domain\sysvol\my.domain\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\gpt.i
ni from a domain controller and was not successful. Group Policy settings may no
t be applied until this event is resolved. This issue may be transient and could
be caused by one or more of the following:
a) Name Resolution/Network Connectivity to the current domain controller.
b) File Replication Service Latency (a file created on another domain controller
has not replicated to the current domain controller).
c) The Distributed File System (DFS) client has been disabled.

I found out that all the GPOs were missing from \\my.domain\sysvol\my.domain\policies. In fact even the policies folder was missing until and I created a couple of new GPOs in gpmc.msc.
The only way to fix things now is delete the dangling referenced GPOs from Group Policy Management (for which there is no corresponding ID file in the policies folder), and recreate them. I should have either backed up the DC or the GPOs individually so that I could restore them.
I followed the decommision procedure to a tee, however, I did encounter errors which I assumed were cleared up after fixing them...but apparently not.

Other symptoms of this problem: when you right click the policy in Group Policy Management and click edit, this error message appears: "Failed to open the group policy object. You may not have appropriate rights." "Details: the system cannot find the path specified."

Besides the missing GPOs, the NetLogon share was missing as well. This was solved by creating a folder called "Scripts" in \\my.domain\sysvol\my.domain and rebooting the computer.

Sunday, September 19, 2010

gSOAP Client Setup Steps

My environment is Vista x64, Visual Studio 2008

Download gSoap from here: http://www.cs.fsu.edu/~engelen/soap.html. I downloaded gsoap_2.8.0.
open command prompt and change to gsoap_2.8.0\gsoap-2.8\gsoap\bin\win32
enter: wsdl2h -c -o iptocountry.h http://www.ecubicle.net/iptocountry.asmx?wsdl

enter: soapcpp2 -c -C iptocountry.h

Create a new Visual Studio 2008 Visual C++ Win32 Console Application with Empty project selected (no Precompiled header)

Copy the following files generated above by gsoap to your VS project directory (with the .vcproj).

files to copy: iptocountrySoap12.nsmap, soapC.c, soapClient.c, soapH.h, soapStub.h

Copy stdsoap2.c and stdsoap2.h to your VS project directory from gsoap_2.8.0\gsoap-2.8\gsoap\

Include the files in your project

Add a file called myclient.c to your project with the following contents:
#include "soapH.h" // obtain the generated stub
#include "iptocountrySoap12.nsmap"
main()
{
struct soap *soap = soap_new();
struct _ns1__FindCountryAsString *_myipv4address;
struct _ns1__FindCountryAsStringResponse *myresponse;
char text[20];

_myipv4address = (struct _ns1__FindCountryAsString *)malloc(sizeof(struct _ns1__FindCountryAsString));
myresponse = (struct _ns1__FindCountryAsStringResponse *)malloc(sizeof(struct _ns1__FindCountryAsStringResponse));

fputs("enter an IP: ", stdout);
fflush(stdout);
if ( fgets(text, sizeof text, stdin) != NULL )
{
char *newline = strchr(text, '\n'); /* search for newline character */
if ( newline != NULL )
{
*newline = '\0'; /* overwrite trailing newline */
}
printf("text = \"%s\"\n", text);
}

_myipv4address->V4IPAddress = text;


if (soap_call___ns2__FindCountryAsString(soap, NULL, NULL, _myipv4address, myresponse) == SOAP_OK)
printf("Country code is = %s\n", myresponse->FindCountryAsStringResult);
else // an error occurred
soap_print_fault(soap, stderr); // display the SOAP fault on the stderr stream
}


Compile.

If you have installed a Microsoft Windows 7 SDK and are getting "fatal error LNK1104: cannot open file 'kernel32.lib'" try adding the path to the SDK lib (e.g. C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib) to your project Configuration Properties \ Linker \ General \ Additional Library Directories.

Tuesday, August 24, 2010

Sharepoint 2010 ASP.NET Impersonation

I was getting

"Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'

when attempting to access my list linked to an external content type, a remote SQL Server Database.

To resolve the issue, I opened IIS 7 \ Sites \ SharePoint - 80 \ Authentication \ ASP.NET Impersonation \ edit, then added a domain account here that could access the SQL Server.

I'm sure this might not be the best practice, security-wise, but hey, at least now it works!

Oh, to even get as far as the above login failed error, I had to do:

Central Administration \ Manage service applications \ Business Data Connectivity Service \ [my external content type] \ Set Object Permissions, then add the above domain account.

---
Update:

Trying on another machine in a different domain now and got: "access denied by business data connectivity"
when trying to add a connection to the External Content Types.
Solved by going to Central Administration \ Manage service applications \ Business Data Connectivity Service \ Set Metadata Store Permissions, and adding my domain account with all available permissions.

ORM LINQ Style

I'm rediscovering LINQ, and came across this article - http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx - by Scott Guthrie (probably not the first time I've read this article).

Ever wonder why arrows seem to point in the opposite direction in E-R diagrams? This paragraph explains it. It ties in well with O/RM, in that the mapped objects will be composed of their children. I always tended to look at it in the direction of the diamond head as more intuitive speaking of foreign keys and all.

The arrows between the four entity classes above represent associations/relationships between the different entities. These are typically modeled using primary-key/foreign-key relationships in the database. The direction of the arrows on the design-surface indicate whether the association is a one-to-one or one-to-many relationship. Strongly-typed properties will be added to the entity classes based on this. For example, the Category class above has a one-to-many relationship with the Product class. This means it will have a "Categories" property which is a collection of Product objects within that category. The Product class then has a "Category" property that points to a Category class instance that represents the Category to which the Product belongs.