Thursday, March 8, 2012
crystal report connection problem
clientdoc.dll error '80041015'
Failed to connect to server "ISIS". Error returned from Windows Sockets API : 0.
/semak/pass_para.asp, line 125
have any of u come a cross this kind of problem. when i run the same system from my pc its working without any error. but when i install to server and try to access from there then only the problem started.there is no one at my place to help. i am really looking forward to get your reply soon. cuz users are going to use the system start from next week....thanks in advance[ Moved thread ]|||Hi madhavibaskaran, Open the report in the server and goto Database>Set Database Location. Now try to configure the database location after that click verify database. Which version of CR are you using?
Madhivanan|||Hi,
This error message appears because the Crystal Report Application Server Service is not running.
To resolve this error message, turn on this service using the following steps:
1. Go to Start > Control Panel > Administrative Tools > Services.
2. Right-click the 'Crystal Report Application Server' Service and click 'Start'.
dear respected members of this forum, i really need your help desperately. i have developed a system using asp, oracle as the database and i used crystal report for web reporting site. i developed this system using my pc which using windows 2000 advanced server as the OS. After completed the system i have copied the program to my office main server which is using windows 2000 server as the OS. now after installed to the server,generally the system is working. But once click to connect to crytal report which is the report generation part the error below showed:-
clientdoc.dll error '80041015'
Failed to connect to server "ISIS". Error returned from Windows Sockets API : 0.
/semak/pass_para.asp, line 125
have any of u come a cross this kind of problem. when i run the same system from my pc its working without any error. but when i install to server and try to access from there then only the problem started.there is no one at my place to help. i am really looking forward to get your reply soon. cuz users are going to use the system start from next week....thanks in advance|||i am using cr enterprise 9 mr madhi.
Hi madhavibaskaran, Open the report in the server and goto Database>Set Database Location. Now try to configure the database location after that click verify database. Which version of CR are you using?
Madhivanan
Friday, February 24, 2012
Crossjoining large dimensions which are close to 1-to-1
We have two dimensions which are about 2 million members each. The fact table that joins those two dimensions is pretty sparse because really those two dimensions are highly related to each other. (They're not enough related to model as one dimension though, trust me.) So when you run the following, the count it returns is around 2.3 million:
with member test as
Exists(
[Dimesion1].[Attrib1].[Attrib1].Members
* [Dimension2].[Attrib2].[Attrib2].Members
,
, "My Fact Table"
).Count
select test on 0
from [My Cube]
The problem is that statement takes 5 minutes to execute and causes SSAS to consume 3GB of memory.
Any thoughts on improving this?
Could you describe the set you are attempting to generate with the [test] expression? Though valid, how you are using EXISTS is a little unusual.
Also, could you explain what you mean by the fact table being "sparse"?
Thanks,
Bryan
|||Bryan-
Yea. A little background might help. We're trying to use the UDM in the true sense of the word... not just for summary level reports which take advantage of high degrees of aggregation, but also for more detail level reports. We're running into some problems using it for semi-detail level reports because of the issue mentioned in this thread.
While car rental isn't remotely the industry I'm working in, it will serve to illustrate the concept. Let's say we have a Driver dimension containing 3 million people and a VIN dimension containing 2 million cars. We take a daily snapshot of who has rented what car. On any given day, there's roughly a 1-to-1 correspondence between drivers and VINs. But a particular car is rented by different drivers over time. So when I say the fact table is "sparse" I mean that it doesn't contain 4,000,000,000,000 rows per day (which would be 2 million X 2 million).
One obvious answer to this question is to use the drillthrough MDX statement. We're looking into rearchitecting the app to do that, but there are a couple of challenges... one being that there are a couple of other dimensions in that fact table which explode out the rows by 5-10x per VIN... but in my query, I only want to see one row per VIN, which is only a small degree of summarization.
So what I'm looking for is to see if anybody else has experience crossjoining large dimensions and making it work. Are there functions I should look into? Just looking for suggestions to try.
|||Is there any difference in performance with his query? (It's probably the same but I have to ask.)
Also, do you have an aggregation built on [Attrib1] + [Attrib2] ?
Code Snippet
with member [Measures].[Combo Count] as
COUNT(
EXISTS(
[Dimension1].[Attrib1].[Attrib1].Members,
[Dimension2].[Attrib2].[Attrib2].Members,
'My Fact Table'
)
)
select
[Measures].[Combo Count] on 0
from [My Cube]
It wasn't clear from my original question, but I'm actually wanting to select those two attributes on rows:
select {} on 0,
Exists(
[Dimesion1].[Attrib1].[Attrib1].Members
* [Dimension2].[Attrib2].[Attrib2].Members
,
, "My Fact Table"
) on 1
from [My Cube]
So I need both in the first parameter of exists.
|||Understood. Try running that sample anyway and let's see how that performs. It will perform a similar evaluation the two attributes. If this performs well, then we can start to move forward to see exactly when we introduce the performance problem. That should give us a clue as to how we might address this.
Also, did you have that aggregation set up and populated in your cube?
Thanks,
Bryan
I am not sure how trying Bryan's suggestion will help here since it returns different result.
I am puzzled, however, why Exists with measure group takes 5 minutes and 3 GBs on only 2.3 million records, but drillthrough works fast. After all both drillthrough and Exists with measure group go through pretty much the same codepath.
Have you played with DISCOVER_MEMORY to see where these 3 GBs go ? My math goes like that: Since you run your query on attribute hierarchies, there should be no more than 8 bytes per member, i.e. 16 bytes per tuple maximum. Therefore, 2.3 million*16 bytes = about 36 MBs - 100 times less than what you observed.
|||To explain my approach....
The way EXISTS is being used in the orginal query strikes me as unusual. We normally define two sets and evaluate across a measure group (if needed). I'm wanting to see how the engine evaluates [Attrib1] vs [Attrib2] using his syntax vs. a more traditional syntax. This may lead no where, but we have seen situations where variations in syntax, though producing the same result, take widely different paths. Though this doesn't return the same result, its a starting point.
The following statement may also be provide a test, closer to where Gregg is wanting to go. Bottomline, I'm trying to see if we can find a mechanism that evaluates Attrib 1 against Attrib 2 that returns quicker.
SELECT [Measures].[My Measure] on 0, NON EMPTY [Dim 1].[Attrib 1].[Attrib 1].Members * [Dim 2].[Attrib 2].[Attrib 2].Members on 1
FROM [Adventure Works]
Regarding the count, I'm wanting to remove the cost of returning a large cellset from our evaluation.
Good luck,
B.
Bryan, I don't think NON EMPTY is the way to go. I don't need to retrieve a measure value, just the valid combinations. Performance using the NonEmpty function was just about the same as Exists, interestingly enough.
As for your comment about aggs, I dismissed it initially thinking it wasn't relevant for two reasons. Both I have disproven both with some tests:
1. I initially thought that those dimensions are way too high cardinality to be involved in aggs. That's a sensible assumption, but I decided to test it. I built an agg on Date, Dim1.Attrib1, and Dim2.Attrib2. That agg turned out to be about 7% of the size of the fact.data file. Now that I think about it, that makes sense. Using that granularity of agg shrinks the distinct rowcount by 5x. And excluding 6 of 9 dimension keys shrinks the size of a row by 3x. So (100/5)/3 = 6.6%. So the takeaway is that you shouldn't assume an agg is too big out of hand.
2. I had just assumed that Exists-with-a-measure-group couldn't run off an agg. Turns out it can!!! (Was this what you were hinting at Bryan?) I used filemon to determine that it was hitting only the agg file on disk, not the fact.data file. In one test I did the Exists query ran 2x faster and produced about 10x less IO. I'll add this to the list of topics to blog out when I get time :-)
Mosha, you're omniscient as always. I'm having trouble reproducing the high memory usage today with the Exists function. The memory usage is just about in line with your guesstimate. It spends most of its time within Serialize Results as you would expect for having large sets on the axes. It's still slower than I would hope, but your statements give me the impression that there's not really a better way to write the MDX, so that pretty much answers my question and closes off this thread. As mentioned above, I think looking into partitioning and aggs is the way to go instead of changing the MDX.
I think I must have been a bit tired Thursday when I was starting this thread because it appears I got memory consumption backwards between Exists-with-a-measure-group and drillthrough. It's drillthrough that uses such a huge amount of memory. It actually consumes over 5GB of memory. The high memory usage is due to setting maxrows to 10,000,000. I'm still surprised at how much memory it uses, but oh well, I guess I won't look at using drillthrough cause it doesn't perform as well as I had anticipated. I reported this as a bug mostly because I saw filemon saying the drillthrough command hit each segment in the fact.data file twice: https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=282134
Thanks y'all.
Cross-dimension Security Dilemma
Here are my simplified security requirements:
1. The cube has a Customer dimension (some 150,000 members) and Account dimension (over 1 mil members). A customer can have one or more accounts.
2. Complex security rules in the operational database dictate which customers the user can view based on her identity and application role membership. Therefore, I need to implement dynamic security to retrieve the allowed set of the customer members from the source database.
3. Instead of retrieving the allowed members for the other dimensions, I would like to propagate the security filter of the Customer dimension, e.g. to the Account dimension, so the user could only see the accounts of the allowed customers.
What’s the recommended approach to implement this? I tried EXISTS on the Account dimension but I still get all accounts.
EXISTS ([Customer].[Customer].[Customer].Members,
[Account].[ Account].[ Account].Members, 'Accounts')
However, if I use this expression in an MDX query, I get indeed the allowed accounts only. It seems like the security filter is applied before the Customer allowed set filter is constructed.
When expressions for dimension security are evaluated, they are evaluated in the context which doesn't have any restrictions. There is a very detailed blog which describes every step during cube initialization, including the context for dimension security - http://sqljunkies.com/WebLog/mosha/archive/2005/12/31/cube_init.aspx
You will have to do Exists with the allowed set of Accounts - sorry that's your only option here.
|||So sad to hear this. Essentially, with dynamic security this wil require several calls to security layer to get the allowed set filter. It could have been nice if there was [Hierarchy].AllowedMembers/[Hierarchy].DeniedMembers to address such scenarios. Even better, it could have been nice if there was an option to apply a global allowed set filter (similar to setting a filter in the cube browser) which will slice the cube across all dimensions.|||I think you should log this suggestion on connect. In the meantime, you may need to implement some caching inside your sprocs if perf of multiple calls becomes a problem.Sunday, February 19, 2012
Cross VPN Domain Authentication
We use a cisco point-to-point VPN to allow employees to connect to the
corporate network from their remote computers that are not members of the
corporate Active Directory domain.
When VPN connected from my non-domain member computer, I open the Windows'
"Run" dialog box and type the path of a shared folder on the corporate
network. After a brief delay I get the "Connect to <path>" dialog box that
requests a User name and Password that I would like to use to connect to the
share. I provide suitable credentials, and after another brief delay I am
connected to the share, and I can open documents and copy files to and from
the share (as folder permissions allow).
So far, however, when I write .NET desktop applications that use the
SqlConnection class to connect to SQL Server via domain authentication, I
cannot get an application to connect through the VPN*. Is there any way to
get a database application to pop up a "Connect to <SqlInstance>" dialog box
so that users can provide their domain credentials to get a connection to
SQL Server from a computer that is not a domain member? I'm interested in
both the SQL 2000 and SQL 2005 cases.
* I get "Login failed for user ''. The user is not associated with a trusted
SQL Server connection..."
Thank you,
Daniel Jameson
SQL Server DBA
Children's Oncology Group
www.childrensoncologygroup.orgHi Daniel,
I understand that when your .NET application tried to connect to your SQL
Server in your coporate domain from a non-domain member computer via VPN,
it failed with the error "Login failed for user ''".
If I have misunderstood, please let me know.
Please check the authentication mode of your SQL Server in Enterprise
Manager or SSMS (SQL Server 2005 Management Studio). If it is Windows
Authentication mode, please change it to Mixed mode and create a SQL login
for the connection of the non-domain computer.
For the client connection string, I recommend that you refer to this
article:
How To: Connect to SQL Server Using SQL Authentication in ASP.NET 2.0
http://msdn2.microsoft.com/en-us/library/ms998300.aspx
Hope this helps. If you have any other questions or concerns, please feel
free to let me know.
Have a good day!
Best regards,
Charles Wang
Microsoft Online Community Support
========================================
=============
Get notification to my posts through email? Please refer to:
http://msdn.microsoft.com/subscript...ault.aspx#notif
ications
If you are using Outlook Express, please make sure you clear the check box
"Tools/Options/Read: Get 300 headers at a time" to see your reply promptly.
Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscript...t/default.aspx.
========================================
==============
When responding to posts, please "Reply to Group" via
your newsreader so that others may learn and benefit
from this issue.
========================================
==============
This posting is provided "AS IS" with no warranties, and confers no rights.
========================================
==============|||"Daniel Jameson" <danjam47@.newsgroup.nospam> wrote in message
news:%23d5h3kFqHHA.196@.TK2MSFTNGP05.phx.gbl...
> Hi,
> We use a cisco point-to-point VPN to allow employees to connect to the
> corporate network from their remote computers that are not members of the
> corporate Active Directory domain.
> When VPN connected from my non-domain member computer, I open the Windows'
> "Run" dialog box and type the path of a shared folder on the corporate
> network. After a brief delay I get the "Connect to <path>" dialog box
> that requests a User name and Password that I would like to use to connect
> to the share. I provide suitable credentials, and after another brief
> delay I am connected to the share, and I can open documents and copy files
> to and from the share (as folder permissions allow).
> So far, however, when I write .NET desktop applications that use the
> SqlConnection class to connect to SQL Server via domain authentication, I
> cannot get an application to connect through the VPN*. Is there any way
> to get a database application to pop up a "Connect to <SqlInstance>"
> dialog box so that users can provide their domain credentials to get a
> connection to SQL Server from a computer that is not a domain member? I'm
> interested in both the SQL 2000 and SQL 2005 cases.
Try using Run As to execute the app, with the right-click->Run As... menu,
or by creating a shortcut to the EXE and setting the "Run with different
credentials" checkbox (properties->shortcut [tab]->Advanced [button]
.) The
former is a one-off way to do it; the latter causes a login prompt when the
shortcut is used to run the app.
When prompted, specify domain credentials (in domain\user, or user@.domain
format) for the impersonation context. If that works, a Win32 app could
call LoginAsUser to internally provide a seamless login facility... not sure
what the .net equivilent is -- but if the Run As login prompt is adequate,
it's a moot point.
-Mark
> * I get "Login failed for user ''. The user is not associated with a
> trusted SQL Server connection..."
> --
> Thank you,
> Daniel Jameson
> SQL Server DBA
> Children's Oncology Group
> www.childrensoncologygroup.org
>
>
>|||Hi Daniel,
I am interested in this issue. Would you mind letting me know the result of
the suggestions? If you need further assistance, feel free to let me know.
I am very glad to work with you for further research.
Charles Wang
Microsoft Online Community Support
========================================
==============
When responding to posts, please "Reply to Group" via
your newsreader so that others may learn and benefit
from this issue.
========================================
==============
This posting is provided "AS IS" with no warranties, and confers no rights.
========================================
==============|||Charles,
Thank you. We are currently using an encrypted connection string approach
similar to that described in your MSDN reference. I was hoping to get
around having to maintain those SQL Server logins and the user ambiguity
that comes with using a common login for all users.
Thank you,
Daniel Jameson
SQL Server DBA
Children's Oncology Group
www.childrensoncologygroup.org
"Charles Wang[MSFT]" <changliw@.online.microsoft.com> wrote in message
news:FCq36SQrHHA.2300@.TK2MSFTNGHUB02.phx.gbl...
> Hi Daniel,
> I am interested in this issue. Would you mind letting me know the result
> of
> the suggestions? If you need further assistance, feel free to let me know.
> I am very glad to work with you for further research.
> Charles Wang
> Microsoft Online Community Support
> ========================================
==============
> When responding to posts, please "Reply to Group" via
> your newsreader so that others may learn and benefit
> from this issue.
> ========================================
==============
> This posting is provided "AS IS" with no warranties, and confers no
> rights.
> ========================================
==============
>|||Hi Daniel,
Did you mean that you wanted to have each of your desktop .NET application
impersonating a different user which could be used for SQL login?
If so, I recommend that you refer to this KB article for adding the
impersonation code:
How to implement impersonation in an ASP.NET application
(Impersonate a Specific User in Code)
http://support.microsoft.com/kb/306158
Hope this helps. Please feel free to let me know if you have any other
questions or concerns.
Have a nice day!
Best regards,
Charles Wang
Microsoft Online Community Support
========================================
=============
Get notification to my posts through email? Please refer to:
http://msdn.microsoft.com/subscript...ault.aspx#notif
ications
If you are using Outlook Express, please make sure you clear the check box
"Tools/Options/Read: Get 300 headers at a time" to see your reply promptly.
Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscript...t/default.aspx.
========================================
==============
When responding to posts, please "Reply to Group" via
your newsreader so that others may learn and benefit
from this issue.
========================================
==============
This posting is provided "AS IS" with no warranties, and confers no rights.
========================================
==============|||Hi Daniel,
What is everything going on? If you have any questions or concerns, please
feel free to post back.
Best regards,
Charles Wang
Microsoft Online Community Support
========================================
=============
Get notification to my posts through email? Please refer to:
http://msdn.microsoft.com/subscript...ault.aspx#notif
ications
If you are using Outlook Express, please make sure you clear the check box
"Tools/Options/Read: Get 300 headers at a time" to see your reply promptly.
Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscript...t/default.aspx.
========================================
==============
When responding to posts, please "Reply to Group" via
your newsreader so that others may learn and benefit
from this issue.
========================================
==============
This posting is provided "AS IS" with no warranties, and confers no rights.
========================================
==============