XML and Smartblob Storage
Posted in 2009
Topics: High Availability & Replication, Storage & Space Management, Error Codes & Troubleshooting, Server Administration, Platform-Specific Issues
IDS 11.5.FC5 AIX 5.3
XML Programmer can run simple functions like genxmlqueryhdr().
Example: On web database as user ifxweb
"EXECUTE FUNCTION genxmlqueryhdr('emarriage','select c_grm_lname from
emarriage');" runs!
Ran into errors when XML output is greater than 32739 bytes.
Reading Informix red books, output larger than 32739 bytes need to go to Smart
Large Objects and the
function needs to be one of the XML CLOB functions like genxmlqueryhdrClob().
Example: select genxmlclob(emarriage, "row") from emarriage;
Generates an Error -9810 or "No sbspace number specified".
-9810 Smart-large-object error.
An error occurred during the processing of a smart large object.
For more information, check the accompanying, detailed smart-large-object
error code.
Further reading suggest the configuration file needs to be modified to create
a "default sbspace". This is by default
defined in the SBSPACENAME configuration parameter. (see below) There were
other topics about "permanent" versus "temporary", etc....
Since he did not need to keep the results for other than the query, I thought
he could use an SBSPACETEMP space instead. A space of 1 GB was configured and
assigned to that $ONCONFIG variable. I also established the following thread:
VPCLASS idsxmlvp,num=1 # XML Thread Activation
He then attempted to run his query:
10/28/09 1:51 PM Executing statement:
SELECT genxml(emarriage, "row") from emarriage;
SQL Error (-8368): genxml
Error Position: Ln: 1 Col: 1
-8368 Function <funcname> Buffer size exceeds maximum size
Explanation:The output of <funcname> must be less than 32739 bytes.
Action:If the combined size of output records exceeds 32739 bytes, one need to
use a clob function.
He then changed it to use the CLOB function:
10/28/09 2:01 PM Executing statement:
SELECT genxmlclob(emarriage, "row") from emarriage;
SQL Error (-9810): Smart-large-object error.
Smart Large Objects: No sbspace number specified.
Error Position: Ln: 1 Col: 1
..... back to the original error ....
Why wouldn't a SBSPACETEMP work? What uses the SBSPACETEMP space?
Since it will not work for this query, I am presuming I will need to create a
regular (non-temporary) smartblob space.
When I create that space and modify the $ONCONFIG, the engine will be bounced.
Do I need to leave the SBSPACETEMP variable as is (with its 1 GB assignment)?
Thanks in advance.
Clifton
_________________________________________________________________
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
I was hoping for some more experienced user to reply to you... But they're
probably amusing themselves and learning extraordinary technologies in IOD.
I believe you need to use the SBSPACENAME and not SBSPACETEMP. SBSPACETEMP
is used for temporary non-logged objects. And in this case you can't
decide... It's the code within the functions.
So you need to setup the SBPACENAME. You could I believe remove the smart
blob space you created and then (only then) remove it's reference from
SBSPACETEMP entry in $ONCONFIG.
Unfortunately these parameters still belong to the ones that need engine
restart.
Regards.
On Wed, Oct 28, 2009 at 7:16 PM, Clifton Bean <clifton_bean@hotmail.com>wrote:
> IDS 11.5.FC5 AIX 5.3
>
> XML Programmer can run simple functions like genxmlqueryhdr().
>
> Example: On web database as user ifxweb
>
> "EXECUTE FUNCTION genxmlqueryhdr('emarriage','select c_grm_lname from
> emarriage');" runs!
>
> Ran into errors when XML output is greater than 32739 bytes.
> Reading Informix red books, output larger than 32739 bytes need to go to
> Smart
> Large Objects and the
> function needs to be one of the XML CLOB functions like
> genxmlqueryhdrClob().
>
> Example: select genxmlclob(emarriage, "row") from emarriage;
> Generates an Error -9810 or "No sbspace number specified".
>
> -9810 Smart-large-object error.
> An error occurred during the processing of a smart large object.
> For more information, check the accompanying, detailed smart-large-object
> error code.
>
> Further reading suggest the configuration file needs to be modified to
> create
> a "default sbspace". This is by default
> defined in the SBSPACENAME configuration parameter. (see below) There were
> other topics about "permanent" versus "temporary", etc....
>
> Since he did not need to keep the results for other than the query, I
> thought
> he could use an SBSPACETEMP space instead. A space of 1 GB was configured
> and
> assigned to that $ONCONFIG variable. I also established the following
> thread:
> VPCLASS idsxmlvp,num=1 # XML Thread Activation>
> He then attempted to run his query:
>
> 10/28/09 1:51 PM Executing statement:
> SELECT genxml(emarriage, "row") from emarriage;
> SQL Error (-8368): genxml
> Error Position: Ln: 1 Col: 1
>
> -8368 Function <funcname> Buffer size exceeds maximum size
>
> Explanation:The output of <funcname> must be less than 32739 bytes.
> Action:If the combined size of output records exceeds 32739 bytes, one need
> to
> use a clob function.
>
> He then changed it to use the CLOB function:
>
> 10/28/09 2:01 PM Executing statement:
> SELECT genxmlclob(emarriage, "row") from emarriage;
> SQL Error (-9810): Smart-large-object error.
> Smart Large Objects: No sbspace number specified.
> Error Position: Ln: 1 Col: 1
>
> ...... back to the original error ....
>
> Why wouldn't a SBSPACETEMP work? What uses the SBSPACETEMP space?
>
> Since it will not work for this query, I am presuming I will need to create
> a
> regular (non-temporary) smartblob space.
>
> When I create that space and modify the $ONCONFIG, the engine will be
> bounced.
> Do I need to leave the SBSPACETEMP variable as is (with its 1 GB
> assignment)?
>
> Thanks in advance.
>
> Clifton
>
> _________________________________________________________________
> 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
>
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
--
Fernando Nunes
Portugal
http://informix-technology.blogspot.com
My email works... but I don't check it frequently...
--000e0cd32ef461ce510477117725
Resolution:
We left the SBSPACETEMP alone, created a space for the SBSPACENAME and added
the following line to our $ONCONFIG file:
VPCLASS idsxmlvp,num=1.
After bouncing the engine and changing his query to use function
genxmlqueryclob, all is well.
Thank you for your assistance.
Clifton
> To: ids@iiug.org
> From: domusonline@gmail.com
> Subject: Re: XML and Smartblob Storage [17822]
> Date: Thu, 29 Oct 2009 07:46:55 -0400
>
> I was hoping for some more experienced user to reply to you... But they're
> probably amusing themselves and learning extraordinary technologies in IOD.
> I believe you need to use the SBSPACENAME and not SBSPACETEMP. SBSPACETEMP
> is used for temporary non-logged objects. And in this case you can't
> decide... It's the code within the functions.
> So you need to setup the SBPACENAME. You could I believe remove the smart
> blob space you created and then (only then) remove it's reference from
> SBSPACETEMP entry in $ONCONFIG.>
> Unfortunately these parameters still belong to the ones that need engine
> restart.
>
> Regards.
>
> On Wed, Oct 28, 2009 at 7:16 PM, Clifton Bean
<clifton_bean@hotmail.com>wrote:
>
> > IDS 11.5.FC5 AIX 5.3
> >
> > XML Programmer can run simple functions like genxmlqueryhdr().
> >
> > Example: On web database as user ifxweb
> >
> > "EXECUTE FUNCTION genxmlqueryhdr('emarriage','select c_grm_lname from
> > emarriage');" runs!
> >
> > Ran into errors when XML output is greater than 32739 bytes.
> > Reading Informix red books, output larger than 32739 bytes need to go to
> > Smart
> > Large Objects and the
> > function needs to be one of the XML CLOB functions like
> > genxmlqueryhdrClob().
> >
> > Example: select genxmlclob(emarriage, "row") from emarriage;
> > Generates an Error -9810 or "No sbspace number specified".
> >
> > -9810 Smart-large-object error.
> > An error occurred during the processing of a smart large object.
> > For more information, check the accompanying, detailed smart-large-object
> > error code.
> >
> > Further reading suggest the configuration file needs to be modified to
> > create
> > a "default sbspace". This is by default
> > defined in the SBSPACENAME configuration parameter. (see below) There were
> > other topics about "permanent" versus "temporary", etc....
> >
> > Since he did not need to keep the results for other than the query, I
> > thought
> > he could use an SBSPACETEMP space instead. A space of 1 GB was configured
> > and
> > assigned to that $ONCONFIG variable. I also established the following
> > thread:
> > VPCLASS idsxmlvp,num=1 # XML Thread Activation> >
> > He then attempted to run his query:
> >
> > 10/28/09 1:51 PM Executing statement:
> > SELECT genxml(emarriage, "row") from emarriage;
> > SQL Error (-8368): genxml
> > Error Position: Ln: 1 Col: 1
> >
> > -8368 Function <funcname> Buffer size exceeds maximum size
> >
> > Explanation:The output of <funcname> must be less than 32739 bytes.
> > Action:If the combined size of output records exceeds 32739 bytes, one need
> > to
> > use a clob function.
> >
> > He then changed it to use the CLOB function:
> >
> > 10/28/09 2:01 PM Executing statement:
> > SELECT genxmlclob(emarriage, "row") from emarriage;
> > SQL Error (-9810): Smart-large-object error.
> > Smart Large Objects: No sbspace number specified.
> > Error Position: Ln: 1 Col: 1
> >
> > ...... back to the original error ....
> >
> > Why wouldn't a SBSPACETEMP work? What uses the SBSPACETEMP space?
> >
> > Since it will not work for this query, I am presuming I will need to create
> > a
> > regular (non-temporary) smartblob space.
> >
> > When I create that space and modify the $ONCONFIG, the engine will be
> > bounced.
> > Do I need to leave the SBSPACETEMP variable as is (with its 1 GB
> > assignment)?
> >
> > Thanks in advance.
> >
> > Clifton
> >
> > _________________________________________________________________
> > 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
> >
> >
> >
> >
>
*******************************************************************************
> > Forum Note: Use "Reply" to post a response in the discussion forum.
> >
> >
>
> --
> Fernando Nunes
> Portugal
>
> http://informix-technology.blogspot.com
> My email works... but I don't check it frequently...
>
> --000e0cd32ef461ce510477117725
>
>
>
*******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
_________________________________________________________________
Hotmail: Trusted email with Microsoft's powerful SPAM protection.
http://clk.atdmt.com/GBL/go/177141664/direct/01/
http://clk.atdmt.com/GBL/go/177141664/direct/01/