Data Gathering API
Posted in 2009
Clifton Bean needed a third-party vendor to use the Data Capture API, but the syscdc database is accessible only to informix. After discussion, the workaround was granting DBA in syscdc to another user. The sample C program failed with CDC_E_ARG1 from cdc_opensess; Art Kagel asked how arg1 was declared. An IBM ticket showed a shared memory connection is needed for the sample script.
Auto-generated by Claude from the posts below — may be imperfect; read the full thread.
Topics: Security, Permissions & Auditing, Logging & Checkpoints, Third-Party Tools & Monitoring
Sadly, the database (syscdc) which is used by this API is accessible only by Informix. See the top of the first page of Chapter 4 of its manual. Does anyone know of a workaround to this "issue". My client had the need to share their logical logs with a third-party EXTERNAL vendor and, since it has been Informix's creed "NEVER GIVE ANYONE YOUR INFORMIX PASSWORD". I need a workaround. I have been thinking about grants and/or synonyms but have a sinking feeling that neither is a viable solution. Thanks in advance for any assistance. I know ... my day to ask questions. Clifton _________________________________________________________________ Hotmail: Trusted email with Microsofts powerful SPAM protection. http://clk.atdmt.com/GBL/go/177141664/direct/01/
Okay:
1. Following-up to the community on the progress of finding a workaround,
2. Getting an error running documented C program.
After discussions with John Miller III and others, it was decided to attempt
to get around the issue by granting a user DBA rights within the syscdc
database. Should be simply enough, yes?
Then, we had the issue of "how can we test this without getting the
third-party vendor involved?" While reading/reviewing the Data Capture API
manual, it was discovered Chapter 7 has a Sample C Program to test out the
functions within the API. The script was copy/pasted/editted(to get rid of
non-program lines captured during the copy/paste) and compiled. Chapter 7 also
contains a sample output that hopefully can be somewhat duplicated.
However, we cannot get around the following error:
-> env | grep INFORMIXSERVER
INFORMIXSERVER=soran_net
sh -x run_me
+ ./cdcapi -D jury -T ifxjury.load_dl -t 30 -C c_dl_numb -f x.out
Connected to syscdcv1@soran_net
CDC_OPENSESS for server soran_net with Timeout 30
CDC API 'cdc_opensess' Failed at cdcapi.ec:781.
CDCAPI_RETVAL = -83721, CDC_ERRORCODE = CDC_E_ARG1
CDC Error Description is
The first parameter passed to the function is not valid.
=====
This is the line of code I believe it to be failing at: $execute function
informix.cdc_opensess(:arg1, 0, :timeout, 1, 1, 0) into :retval;
When it printed the above "Timeout 30" data, it did so with: fprintf(stdout,
"CDC_OPENSESS for server %s with Timeout %d\\
", arg1,timeout);
which is the line of code directly above where the error occurred.
I am not a C programmer. Would someone mind explaining to me why this error
occurred and how I can resolve it?
Thanks in advance.
Clifton
> To: ids@iiug.org
> From: clifton_bean@hotmail.com
> Subject: Data Gathering API [17444]
> Date: Thu, 8 Oct 2009 15:52:23 -0400
>
> Sadly, the database (syscdc) which is used by this API is accessible only by
> Informix. See the top of the first page of Chapter 4 of its manual.
>
> Does anyone know of a workaround to this "issue". My client had the need to
> share their logical logs with a third-party EXTERNAL vendor and, since it has
> been Informix's creed "NEVER GIVE ANYONE YOUR INFORMIX PASSWORD". I need a
> workaround. I have been thinking about grants and/or synonyms but have a
> sinking feeling that neither is a viable solution.
>
> Thanks in advance for any assistance. I know ... my day to ask questions.
> Clifton
> _________________________________________________________________
> Hotmail: Trusted email with Microsofts powerful SPAM protection.
> http://clk.atdmt.com/GBL/go/177141664/direct/01/
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
_________________________________________________________________
Hotmail: Powerful Free email with security by Microsoft.
http://clk.atdmt.com/GBL/go/171222986/direct/01/
Is arg1 specified as a host variable in an EXEC SQL BEGIN DECLARE SECTION;
or with $int?
Art
Art S. Kagel
Oninit (www.oninit.com)
IIUG Board of Directors (art@iiug.org)
Disclaimer: Please keep in mind that my own opinions are my own opinions and
do not reflect on my employer, Oninit, the IIUG, nor any other organization
with which I am associated either explicitly or implicitly. Neither do
those opinions reflect those of other individuals affiliated with any entity
with which I am affiliated nor those of the entities themselves.
On Mon, Oct 19, 2009 at 11:48 AM, Clifton Bean <clifton_bean@hotmail.com>wrote:
> Okay:
>
> 1. Following-up to the community on the progress of finding a workaround,
>
> 2. Getting an error running documented C program.
>
> After discussions with John Miller III and others, it was decided to
> attempt
> to get around the issue by granting a user DBA rights within the syscdc
> database. Should be simply enough, yes?
>
> Then, we had the issue of "how can we test this without getting the
> third-party vendor involved?" While reading/reviewing the Data Capture API
> manual, it was discovered Chapter 7 has a Sample C Program to test out the
> functions within the API. The script was copy/pasted/editted(to get rid of
> non-program lines captured during the copy/paste) and compiled. Chapter 7
> also
> contains a sample output that hopefully can be somewhat duplicated.
>
> However, we cannot get around the following error:
>
> -> env | grep INFORMIXSERVER
> INFORMIXSERVER=soran_net>
> sh -x run_me
> + ./cdcapi -D jury -T ifxjury.load_dl -t 30 -C c_dl_numb -f x.out
> Connected to syscdcv1@soran_net
> CDC_OPENSESS for server soran_net with Timeout 30
>
> CDC API 'cdc_opensess' Failed at cdcapi.ec:781.
>
> CDCAPI_RETVAL = -83721, CDC_ERRORCODE = CDC_E_ARG1
> CDC Error Description is
>
> The first parameter passed to the function is not valid.
>
> =====
>
> This is the line of code I believe it to be failing at: $execute function
> informix.cdc_opensess(:arg1, 0, :timeout, 1, 1, 0) into :retval;
>
> When it printed the above "Timeout 30" data, it did so with:
> fprintf(stdout,
> "CDC_OPENSESS for server %s with Timeout %d\\
", arg1,timeout);
>
> which is the line of code directly above where the error occurred.
>
> I am not a C programmer. Would someone mind explaining to me why this error
> occurred and how I can resolve it?
>
> Thanks in advance.
>
> Clifton
>
> > To: ids@iiug.org
> > From: clifton_bean@hotmail.com
> > Subject: Data Gathering API [17444]
> > Date: Thu, 8 Oct 2009 15:52:23 -0400
> >
> > Sadly, the database (syscdc) which is used by this API is accessible only
> by
> > Informix. See the top of the first page of Chapter 4 of its manual.
> >
> > Does anyone know of a workaround to this "issue". My client had the need
> to
> > share their logical logs with a third-party EXTERNAL vendor and, since it
> has
> > been Informix's creed "NEVER GIVE ANYONE YOUR INFORMIX PASSWORD". I need
> a
> > workaround. I have been thinking about grants and/or synonyms but have a
> > sinking feeling that neither is a viable solution.
> >
> > Thanks in advance for any assistance. I know ... my day to ask questions.
> > Clifton
> > _________________________________________________________________
> > Hotmail: Trusted email with Microsofts powerful SPAM protection.
> > http://clk.atdmt.com/GBL/go/177141664/direct/01/
> >
> >
> >
>
>
*******************************************************************************
> > Forum Note: Use "Reply" to post a response in the discussion forum.
> >
>
> _________________________________________________________________
> Hotmail: Powerful Free email with security by Microsoft.
> http://clk.atdmt.com/GBL/go/171222986/direct/01/
>
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
--0015174bed9247675a04764bc51f
Here is a followup (for those interested): Workaround: grant DBA access to another user within the syscdc database. We have discovered, via an IBM Informix Ticket, that a SHM connection is necessary when running the sample script located in the Data Gathering API Manual. > To: ids@iiug.org > From: clifton_bean@hotmail.com > Subject: Data Gathering API [17444] > Date: Thu, 8 Oct 2009 15:52:23 -0400 > > Sadly, the database (syscdc) which is used by this API is accessible only by > Informix. See the top of the first page of Chapter 4 of its manual. > > Does anyone know of a workaround to this "issue". My client had the need to > share their logical logs with a third-party EXTERNAL vendor and, since it has > been Informix's creed "NEVER GIVE ANYONE YOUR INFORMIX PASSWORD". I need a > workaround. I have been thinking about grants and/or synonyms but have a > sinking feeling that neither is a viable solution. > > Thanks in advance for any assistance. I know ... my day to ask questions. > Clifton > _________________________________________________________________ > Hotmail: Trusted email with Microsoft̼ powerful SPAM protection. > http://clk.atdmt.com/GBL/go/177141664/direct/01/ > > > ******************************************************************************* > Forum Note: Use "Reply" to post a response in the discussion forum. > _________________________________________________________________ Windows 7: Simplify your PC. Learn more. http://www.microsoft.com/Windows/windows-7/default.aspx?ocid=PID24727::T:WLMTAGL :ON:WL:en-US:WWL_WIN_evergreen1:102009